在本地执行远程shell脚本时提示被忽略

时间:2014-06-05 10:46:47

标签: bash shell sh wget

我在网上某处提供了shell脚本,我想获取它并在本地执行。通常我会这样做:wget -qO- remote_script.sh | sh

这很好用,但是当脚本中出现提示符read -p "Prompt" yn时,它会被忽略。

对此最简单,最简短的解决方案是什么?

2 个答案:

答案 0 :(得分:2)

你需要避免使用shell的stdin来读取命令。试试这个:

sh <(wget -q0- remote_script.sh)

进程替换就像一个文件,所以sh的stdin仍然可用于该读命令。

答案 1 :(得分:0)

这可能正在发生,因为您将脚本的内容传递给sh,这是在shell中单独发送每个命令的行。如果您的脚本是:     #!/斌/庆典     读-p&#34;提示:&#34; YN     echo $ yn

这是正在执行的内容:     $ read -p&#34;提示:&#34; YN     提示:echo $ yn     $

你应该做的是保存脚本,然后像这样运行:     $ wget -q -O myscript.sh remote_script.sh&amp;&amp; sh myscript.sh