bash while循环只读取一行

2023-12-29

我对这段代码有疑问。

  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从标准输入读取,因此它将吃掉文件的其余部分。跑步ssh-n将其输入重定向到 /dev/null 的选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash while循环只读取一行 的相关文章