我写了一个应该可以从网上安装的bash脚本。它应该在运行时从用户那里获取输入。 下面是我如何做到但它直接终止应用程序而不提示用户输入信息。
curl www.test.com/script.sh | bash
我读到某个地方,stdin用管道输入bash,这就是为什么它没有提示任何东西。
任何帮助都会很棒。
谢谢你们
答案 0 :(得分:6)
bash <(curl www.test.com/script.sh)
答案 1 :(得分:0)
尝试
bash -c '`curl www.test.com/script.sh`'
虽然如果脚本中有单引号,这会有问题。
如果做不到,请分两步完成:
curl -o /tmp/script.sh www.test.com/script.sh
bash /tmp/script.sh
您可以将脚本保存在任何您喜欢的位置,为了更好的安全性,您可能需要使用tmpfile
或其他内容,但是直接在网上运行脚本听起来并不像是高安全性。
答案 2 :(得分:0)
你可以尝试:
bash -c "$(curl -s www.test.com/script.sh)"
从bash联机帮助页
-c string If the -c option is present, then commands are read from string.
If there are arguments after the string, they are
assigned to the positional parameters, starting with $0.