当读取行循环在第一行之后停止时,shell脚本

当读取行循环在第一行之后停止时,shell脚本

我有下面的shell脚本。其目的是遍历目标文件的每一行(其路径是脚本的输入参数),并对每一行进行工作。现在,它似乎只适用于目标文件中的第一行,并在该行被处理后停止。我的剧本有什么问题吗?

#!/bin/bash# SCRIPT: do.sh# PURPOSE: loop thru the targets FILENAME=$1
count=0echo "proceed with $FILENAME"while read LINE; do
   let count++
   echo "$count $LINE"
   sh ./do_work.sh $LINEdone < $FILENAME

echo "\ntotal $count targets"

在……里面do_work.sh,我运行了几个ssh命令。


大话西游666
浏览 656回答 3
3回答

MYYA

SSH-n选项防止在使用HEREdoc时检查ssh的退出状态,同时将输出管道输出到另一个程序。因此,最好使用/dev/null作为stdin。#!/bin/bashwhile&nbsp;read&nbsp;ONELINE&nbsp;;&nbsp;do &nbsp;&nbsp;&nbsp;ssh&nbsp;ubuntu@host_xyz&nbsp;</dev/null&nbsp;<<EOF&nbsp;2>&1&nbsp;|&nbsp;filter_pgm&nbsp; &nbsp;&nbsp;&nbsp;echo&nbsp;"Hi,&nbsp;$ONELINE.&nbsp;You&nbsp;come&nbsp;here&nbsp;often?" &nbsp;&nbsp;&nbsp;process_response_pgm&nbsp; EOF&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;${PIPESTATUS[0]}&nbsp;-ne&nbsp;0&nbsp;]&nbsp;;&nbsp;then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"aborting&nbsp;loop" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;${PIPESTATUS[0]} &nbsp;&nbsp;&nbsp;fidone&nbsp;<<&nbsp;input_list.txt
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python