我正在尝试使用 putty 从 Windows 计算机在远程 Debian 服务器上执行本地 bash 脚本。该脚本非常简单:
#!/bin/bash
echo "Welcome."
read -p "Enter your name: " NAME
echo "Nice to see you, ${NAME}!"
直接从 debian 服务器执行时,该脚本运行良好。
我安装了 Putty(版本 0.73),以便能够通过运行以下 cmd 脚本来远程执行它:
@ECHO OFF
start /b putty -ssh -m "hello.sh" "server.example.com"
我也尝试过使用 plink:
@ECHO OFF
start /b plink -ssh -m "hello.sh" "server.example.com"
这两种方法都给出了相同的结果:脚本挂在指令上read
,我输入的任何内容似乎都不会改变 shell(甚至enter
或ctrl-c
)。提示甚至没有显示(但回显了“欢迎。”消息)。我唯一能做的就是关闭终端。
知道是什么原因导致了这个问题,以及如何解决它?
答案1
问题是您没有处于terminal
模式。油灰正在等待整行内容之后才显示它。
你必须跑油灰选择-t
https://the.earth.li/~sgtatham/putty/0.73/htmldoc/Chapter3.html#using-cmdline