编写一个程序,接收两个参数ID和content
(1)如果这ID在文件IDlist.txt中有,那么在数据库中插入一条记录。
(2)如果ID没有那么把ID和content写入文件result.txt中。
解答:
分析:误区,此题看似简单,其实并不容易,好多学生,在文件没有比对完 就做实际判断并操作,得到的结果是不对的。此题能够自己不去g,可以清晰的完成下来,在写脚本,编程方面基本就过关了。
1、假设IDlist.txt为如下内容
[root@oldboy ~]# cat IDlist.txt
01 ydds
02 jeacen
03 kuqi
04 maidong
05 yazhe
06 maliao
07 xiaofan
2.使用编写好的ett.sh脚本实施测试
[root@oldboy ~]# sh ett.sh 03 ‘linux’ IDlist.txt
[root@oldboy ~]# mysql -S /data/3306/mysql.sock -e “select * from oldboy.oldboy ”
+——+———+
| id | content |
+——+———+
| 3 | linux |
+——+———+
[root@oldboy ~]# sh ett.sh 06 ‘oldboy’ IDlist.txt
[root@oldboy ~]# mysql -S /data/3306/mysql.sock -e “select * from oldboy.oldboy ”
+——+———+
| id | content |
+——+———+
| 6 | oldboy |
+——+———+
[root@oldboy ~]# sh ett.sh 08 ‘oldboy’ IDlist.txt
[root@oldboy ~]# cat result.txt
08 oldboy IDlist.txt
3、实际脚本内容
[root@oldboy ~]# cat ett.sh
#!/bin/sh
############################################################
# Purpose: script
# USER YYYY-MM-DD – ACTION
# Oldboy 2011-01-07 – Created
############################################################
status=0
IdArray=($(cat $3|awk ‘{print $1}’))
for ((i=0; i<`echo ${#IdArray[*]}`; i++))
do
if [ $1 -eq ${IdArray[$i]} ] ;then
mysql -S /data/3306/mysql.sock -e “DROP DATABASE IF EXISTS oldboy;”
mysql -S /data/3306/mysql.sock -e “create database oldboy;create table oldboy.oldboy(id int,content varchar(100))”
mysql -S /data/3306/mysql.sock -e “insert into oldboy.oldboy values($1,’$2′)”
let status+=99;
exit
fi
done
if [ $status -ne 99 ];then
echo “$1 $2 $3″ >./result.txt
fi