我正在尝试从 Window PowerShell 命令 Linux 机器。这些命令取决于之前命令的失败/通过。因此,我必须将所有命令放在一起。我尝试了多种将命令组合在一起的方法,但最后我只收到第一个命令的输出。
PS C:\Users\sams> plink -ssh -l username -pw root [email protected] -t
"sudo -i && cd /root/docker/storm-supervisor/ && ./stop-all.sh"
实际结果:仅接收第一个命令的输出。
预期结果:接收最终命令的输出。
sudo -i && cd /root/docker/storm-supervisor/ && ./stop-all.sh
在 Linux shell 中尝试您的命令。这也行不通。它将执行提升的 shell 并等待您输入命令。只有在你离开之后sudo
shell,它将运行其他命令(使用原始帐户)。
The cd
and ./stop-all.sh
是子命令sudo
。所以你必须这样对待他们。
-
最好的方法是提供命令sudo
命令行:
sudo "cd /root/docker/storm-supervisor/ && ./stop-all.sh"
但这可能需要修改sudoers
文件。虽然这是正确的方法。
-
或者您需要将命令提供给sudo
input:
echo "cd /root/docker/storm-supervisor/ && ./stop-all.sh && exit" | sudo
-
或者将所有内容输入 Plink 输入:
(
echo cd /root/docker/storm-supervisor/
echo ./stop-all.sh
) | plink -ssh -l username -pw root [email protected] -t sudo -i
-
Or even:
(
echo sudo -i
echo cd /root/docker/storm-supervisor/
echo ./stop-all.sh
) | plink -ssh -l username -pw root [email protected] -t
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)