1
我有一个shell脚本s1在循环中调用另一个脚本s2。调用另一个脚本后退出循环的Shell脚本
但是s1似乎无法在s2返回后继续循环。
注释掉调用s2的行将使循环继续。
s2复制一个文件,s1检查条件并使用s2复制几个文件。
任何人都可以给一个指针这里发生了什么?
...
while read line
do
s2 param1 param2 param3
echo "copy done"
done < $tempfile
echo "out of loop"
...
“拷贝完成”被打印出来,所以是“退出循环”
在S2中的一些内容:
if ls -l $LOGDIR | grep -w sftp.log
if ssh $USER -i $IDENTITY "ls -l $MOV_LOC"
cat $TMPDIR/$TMPFILE1 | /usr/xpg4/bin/awk -v logdir=$LOGDIR -v register=$REGISTER -v rmt_cmd=$RMT_CMD -v identity=$IDENTITY '{print "scp -q -r -P 22 -i", identity, rmt_cmd ,$NF, ">>" , logdir "/" register , "2>&1"}' > $TMPDIR/$TMPSCRIPT2
cat $TMPDIR/$TMPFILE1 | /usr/xpg4/bin/awk -v tmpdir=$TMPDIR -v list=$TMPFILE2 '{print "digest -a sha1" , $NF , ">>", tmpdir "/" list}' > $TMPDIR/$TMPSCRIPT1
ssh $USER -i $IDENTITY "mv $REMOTE_QUEUE $MOV_LOC" > $TMPDIR/$TMPFILE5
s2会返回成功吗?尝试回声“复制完成,ret code $?” – ulidtko 2011-01-14 10:23:10
s2是否有文件涉及到`$ tempfile`,例如覆盖它? – 2011-01-14 10:59:51