我有一个简单的bash脚本:
echo "Hello!"
read varname
echo "you entered " $varname
因此它输出“你好!” 然后接受用户输入并输出输入的文本。
该脚本可以使用PuTTY成功执行。
我也可以通过Windows使用Plink运行脚本cmd
。我连接到主机:
plink.exe-批处理-i C:\ path \ to \ key.ppk user @ host
然后更改目录并运行脚本:
cd mydir
bash myscript.sh
该脚本按要求工作:打印“ Hello!”。然后要求输入并打印输入。
但是,如果我使用Plink连接使用相同的字符串运行脚本:
plink.exe -batch -i C:\path\to\key.ppk user@host bash ./mydir/myscript.sh
我收到以下错误消息:我看到“你好!” 输出,并且光标在下一行闪烁。但是我不能在那里输入任何字符。控制台根本不响应任何键,甚至不响应Enter。唯一的继续方法是按Ctrl + C关闭连接。
那么,如果使用一行执行脚本,那么如何解决此问题并使脚本接受使用cmd + Plink的输入呢?
在Plink命令行上指定命令时,它会在非交互式会话中执行该命令(无需终端仿真)。
使用-t
开关强制使用交互式会话(终端仿真):
plink.exe -batch -t -i C:\path\to\key.ppk user@host bash ./mydir/myscript.sh
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句