我试图编写一个Bash脚本,该脚本登录到2个不同的基于Linux的电源条(Ubiquiti Mpower Pros)并关闭2个不同的灯(每个条带上一个)。为此,我登录到第一个条带,将相应的文件更改为0(从而关闭灯光),然后退出,在下一个电源条上重复相同的过程。但是,在退出第一个SSH连接后,脚本停止工作。有人可以建议修复吗?我唯一的想法是将这个脚本包含在python程序中。这是我的代码:
#!/bin/bash
ssh User@192.168.0.100
echo "0" > /proc/power/relay1
exit
# hits the enter key
cat <(echo "") | <command>
ssh User@192.168.0.103
echo "logged in"
echo "0" > /proc/power/relay1
exit
cat <(echo "") | <command>
答案 0 :(得分:4)
ssh
作为应用程序BLOCKS在运行时,echo
和exit
由本地shell执行,而不是由远程机器执行。所以你在做:
ssh user@host command
^^^^^---executed on the remote machine
e.g。
ssh foo@bar 'echo ... ; exit'
答案 1 :(得分:2)
您显然试图通过ssh
运行的命令实际上是在本地执行的。您只需将要运行的命令传递给ssh,它就可以执行此操作(无需显式exit
)
ssh User@192.168.0.110 'echo "0" > /proc/power/relay1'
会这样做,类似于其他ssh命令