While loop stops reading after the first line in Bash

后端 未结 4 822
温柔的废话
温柔的废话 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:04

    The problem is that do_work.sh runs ssh commands and by default ssh reads from stdin which is your input file. As a result, you only see the first line processed, because ssh consumes the rest of the file and your while loop terminates.

    To prevent this, pass the -n option to your ssh command to make it read from /dev/null instead of stdin.

提交回复
热议问题