我在网上某处提供了shell脚本,我想获取它并在本地执行。通常我会这样做:wget -qO- remote_script.sh | sh
这很好用,但是当脚本中出现提示符read -p "Prompt" yn
时,它会被忽略。
对此最简单,最简短的解决方案是什么?
答案 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