尽管使用ssh -n,但ssh在查看时中断
我需要ssh到几个服务器中,并在那里运行一些命令。不幸的是,while循环中的ssh中断了循环
这里有一个hosts.txt:
10.168.2.27
10.168.3.95脚本是这样的:
#!/bin/bash
filename="$1"
while read f1
do
echo "Logging into $f1"
ssh root@$f1 'hostname; uptime' < /dev/null
done <"$filename"我也尝试过ssh -n,但是结果总是一样的循环在hosts.txt的第一行之后被中断。
我的脚本出了什么问题?
发布于 2019-06-07 21:39:10
如果read没有找到换行符,那么它将处于非零退出状态,因此,尽管它将读取文件中剩余的内容,但不会进入循环体。有两种解决方案:
确保从符合POSIX的文本文件中读取条件,这意味着每一行都以\n.
while read f1 || -n "$f1“;执行
只要read能够读取某些内容,它就将具有非零退出状态。
第一个选项更可取。
https://stackoverflow.com/questions/56494395
复制相似问题