从 Putty 或 plink 执行时,Bash 的“read”命令会挂起

从 Putty 或 plink 执行时,Bash 的“read”命令会挂起

我正在尝试使用 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(甚至enterctrl-c)。提示甚至没有显示(但回显了“欢迎。”消息)。我唯一能做的就是关闭终端。

知道是什么原因导致了这个问题,以及如何解决它?

答案1

问题是您没有处于terminal 模式。油灰正在等待整行内容之后才显示它。

你必须跑油灰选择-t

https://the.earth.li/~sgtatham/putty/0.73/htmldoc/Chapter3.html#using-cmdline

相关内容