通过 ssh 使用 for 循环连接一个 Raspberry Pi

Connecting one Raspberry Pi after another using for loop through ssh

我正在尝试一个接一个地连接到一个 Raspberry pi,但是 ssh 跳出了 for 循环:

for i in 4 8;
do
ssh -tt pi@192.168.1.$i "python3 ./replace.py"  && exit
done

它与 4 连接并执行但是在连接关闭后它没有连接到下一个 Rpi,它没有通过 for 循环它 exits.Please 让我知道我哪里错了.

感谢帮助

您正在当前 shell 而不是远程计算机上调用 exit。在你的情况下不需要使用 && exit ,简单

for i in 4 8;
do
ssh -tt pi@192.168.1.$i "python3 ./replace.py"
done

会起作用。

如果您出于某种原因绝对必须手动退出 - 它应该放在引号内,如下所示:

for i in 4 8;
do
ssh -tt pi@192.168.1.$i "python3 ./replace.py && exit"
done

此外,如果您想同时在所有 Pi 上使用此脚本,而不是按顺序执行,请考虑使用 pssh

pssh -H "$(for i in 4 8; do echo 192.168.1.$i; done)" -i "python3 ./replace.py"

或者简单地将您的主机传递给 -H 开关。参见 https://linux.die.net/man/1/pssh