在Bash脚本中使用SSH会导致退出循环

6

我想在几台远程主机上运行一些命令。我有一个文件ips.txt,里面列出了它们的IP地址(每行一个IP地址)。

#!/bin/bash

while IFS= read -r wip; do
    echo $wip
    ssh root@$wip "pkill pgm; cd /root/pgm; nohup ./pgm  > /dev/null 2>&1 &"
    echo "$wip end"
done < ips.txt

我正在运行上面那个脚本。但问题是,在读取第一个IP后,循环就退出了。但如果我移除ssh那一行,它会打印出所有的IP。

1
https://unix.stackexchange.com/questions/107800/using-while-loop-to-ssh-to-multiple-servers - Pavel
1个回答

8

ssh 从标准输入 (ips.txt) 中读取所有内容。

替换

ssh

使用

ssh -n

请查看:man ssh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接