bash while循环只读一行

时间:2018-03-27 09:03:31

标签: bash while-loop

我对此代码有疑问。

  while IFS='' read -r line
  do

    echo "host: "$line

    IP_addr=$(echo $line |cut -d" " -f1)
    host=$(echo $line | cut -d" " -f2)

    FILE_CHECK=$(ssh -o ConnectTimeout=10 $USER@$IP_addr "find $SRC_FILE -mtime 0")

    echo $FILE_CHECK

    ((host_num+=1))


    echo "" #empty line
  done < "$SERVER_LIST"

  echo $host_num

变量服务器列表包含服务器文件的路径

192.168.1.1 app1
192.168.1.2 app2
192.168.1.3 app3 

脚本读取第一行,成功连接到主机然后退出。当我尝试循环文件并且只有回显线循环读取所有行。

1 个答案:

答案 0 :(得分:2)

ssh从stdin读取,因此会占用文件的其余部分。使用ssh选项运行-n,将其输入重定向到/ dev / null。