为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

大话西游666 2019-06-21 15:50:47
当读取行循环在第一行之后停止时,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命令。
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

SSH-n选项防止在使用HEREdoc时检查ssh的退出状态,同时将输出管道输出到另一个程序。因此,最好使用/dev/null作为stdin。

#!/bin/bashwhile read ONELINE ; do
   ssh ubuntu@host_xyz </dev/null <<EOF 2>&1 | filter_pgm 
   echo "Hi, $ONELINE. You come here often?"
   process_response_pgm 
EOF   if [ ${PIPESTATUS[0]} -ne 0 ] ; then
      echo "aborting loop"
      exit ${PIPESTATUS[0]}
   fidone << input_list.txt


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 655 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信