通过多个 ssh 在远程服务器上运行本地脚本时,脚本被分成多行?

通过多个 ssh 在远程服务器上运行本地脚本时,脚本被分成多行?

我的本地计算机上有一个脚本,script.sh.我想在只能通过多个 ssh 访问的远程服务器上运行它。

脚本.sh:

ls
ls
ls

我试过:

user@localhost:~/$ ssh -At host1 ssh -At host2 "bash -s" -- < ./script.sh

但输出被分成多行:

user@host2:~/$ ls
examples.desktop
user@host2:~/$ ls
examples.desktop
user@host2:~/$ ls

我还希望在不将我置于远程计算机上的终端中的情况下执行此操作。

如何让脚本作为单个命令执行?

答案1

我可以通过删除该-t标志来解决此问题,这样 ssh 就不会将我置于远程主机上的终端中。

user@localhost:~/$ ssh -A host1 ssh -A host2 "bash -s" -- < ./script.sh

输出:

examples.desktop
examples.desktop
examples.desktop
user@localhost:~/$

它还使我保持在本地主机上,而不是让我进入远程主机上的终端。

相关内容