繁体   English   中英

bash while循环只能读一行

[英]bash while loop read only one line

我对此代码有疑问。

  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 

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM