我的目的是一个脚本连接DB2 数据库,根据查询结果,做while 循环,在循环里面调用第二个脚本,第二个脚本里面仅仅是ssh 命令,在ssh 的目标server上执行其它的脚本
现在的问题是,第一个脚本的while 脚本都只执行一次,但是如果将调用第二个脚本的命令mark掉,就会执行多次了,直到while条件不满足
第一个脚本基本如下:
ssql=“select a,b,c from table1 "
sdata='db2 -t "$ssql"'
while read a b c #while条件可以执行多次
do
/tmp/test.ksh $a $b
done
第二个脚本test.ksh基本如下:
ssh root@172.17.10.10 /temp/test.ksh $a $b
如上,第一个脚本while条件可以执行多次,但是每次都只执行一次,程序就结束了
我将两个脚本整合到一起,也是只执行一次:
ssql=“select a,b,c from table1 "
sdata='db2 -t "$ssql"'
while read a b c #while条件可以执行多次
do
ssh root@172.17.10.10 /temp/test.ksh $a $b
done
å¯ä»¥ææ°æ®åºæ¥è¯¢çç»æè¾åºå°æ件å对æ件è¿è¡å¾ªç¯å¥½ä¸ç¹
ssql="select a||'|'||b||'|'||c from table1 "
ç¶åè¿å ¥æç»æè¾åºå°ä¸ä¸ªææ¡£>>abc.unl
cat abc.unl |grep "|" |while read abc
do
a=`echo $abc|awk -F "|" '{print $1}'`
b=`echo $abc|awk -F "|" '{print $2}'`
ssh root@172.17.10.10 /temp/test.ksh $a $b
done
rm abc.unl
ssql="select a||'|'||b||'|'||c from table1 "
ç¶åè¿å ¥æç»æè¾åºå°ä¸ä¸ªææ¡£>>abc.unl
cat abc.unl |grep "|" |while read abc
do
a=`echo $abc|awk -F "|" '{print $1}'`
b=`echo $abc|awk -F "|" '{print $2}'`
ssh root@172.17.10.10 /temp/test.ksh $a $b
done
rm abc.unl
温馨提示:答案为网友推荐,仅供参考