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