如何跳过主机名并转到ssh中的下一个?

时间:2014-08-25 19:04:26

标签: macos bash

我有这个Bash脚本,它将根据保存主机名的.txt文件进入Mac。

File=/Users/<username>/Desktop/PartitionPermissions.txt
echo \ >> $File
cat Names.txt | xargs -I %Name ssh -n -q <username>@%Name "$(< testscript.sh)" >>        $File

但是,如果其中一个主机名无法解析(因为计算机当前不在线),它将在那里终止脚本,而不是转到文件中的下一个主机名。有没有办法强制它跳到下一个主机名而不是完全停止脚本完成?

1 个答案:

答案 0 :(得分:0)

即使ssh失败,这应该循环而不会失败:

File=/Users/<username>/Desktop/PartitionPermissions.txt
echo \ >> $File
while read name; do
    ssh -n -q <username>@$name "$(< testscript.sh)" >> $File
done < Names.txt

虽然你可能想检查ssh是否完成,例如在while循环中改为:

if ! ssh -n -q <username>@$name "$(< testscript.sh)" >> $File; then
    echo "ssh for $name failed"
fi