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