通过 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
我正在尝试一个接一个地连接到一个 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