【发布时间】:2022-01-29 05:23:21
【问题描述】:
我正在尝试通过 SSH 连接到我的服务器并向其发出一些命令。由于某种原因,这些命令似乎被“切断”了。
下面是执行 putty 连接以及发出 SSH 命令的代码:
./plink.exe ${USER}@${HOSTNAME} -pw ${PASS}<<SSH
cd /some/foo/bar
deploy_artifact.sh --instance development1 some_artifact.ear
APP_development1.sh restart
exit
SSH
对我来说它有效,但在我同事的机器上发出的 SSH 命令被切断,因此无法正确解释。例如deploy_artifact.sh 正在变成ploy_artifact.sh(见下面的截图)。
如何防止这种情况发生?是什么原因造成的?
提前感谢您的帮助!
【问题讨论】:
-
确保你的脚本没有使用 DOS 行尾。
-
还有其他事情发生;
APP_development1.sh没有出现在您上面发布的代码中。 -
@chepner 对不起,我在那里犯了一个错误。我更新了代码。
-
@chepner 根据notepad++,结尾已经是UNIX格式(LF)
-
使用
-m commands.sh选项从文件中读取脚本时是否会出现同样的问题?此外,您可以尝试更新目标机器上的 ssh 服务器。要么 ssh 服务器正在丢弃第一个字符,要么 ssh 客户端不发送它们。