【发布时间】:2023-03-24 13:59:01
【问题描述】:
我正在编写一个脚本,该脚本通过 SSH 登录到远程服务器并执行一些命令,其中一个通过 SSH 登录到第二个远程服务器(我无法在本地访问)并执行命令。在那个嵌套的 SSH 命令之后,我原来的 SSH 命令终止并且没有完成heredoc 的其余部分。我稍微简化了脚本,但得到了相同的结果:
#!/bin/bash
ssh server1 <<'EOF'
echo one $HOSTNAME
ssh server2 'echo two $HOSTNAME'
echo three $HOSTNAME
EOF
我的输出如下所示:
one server1
two server2
我希望在我的输出末尾看到three server1,但它没有发生。我能够将它们分成两个 SSH 命令并得到我需要的东西,但我很好奇为什么会发生这种情况,是否有可能一次性得到我所期望的?
【问题讨论】: