While loop stops reading after the first line in Bash

后端 未结 4 824
温柔的废话
温柔的废话 2021-01-20 21:13

I have the following shell script. The purpose is to loop thru each line of the target file (whose path is the input parameter to the script) and do work against each line.

4条回答
  •  时光取名叫无心
    2021-01-20 22:10

    ssh -n option prevents checking the exit status of ssh when using HEREdoc while piping output to another program. So use of /dev/null as stdin is preferred.

    #!/bin/bash
    while read ONELINE ; do
       ssh ubuntu@host_xyz &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]}
       fi
    done << input_list.txt
    

提交回复
热议问题