运行从Web卷曲的bash脚本

时间:2013-03-25 00:31:04

标签: linux bash

我写了一个应该可以从网上安装的bash脚本。它应该在运行时从用户那里获取输入。 下面是我如何做到但它直接终止应用程序而不提示用户输入信息。

curl www.test.com/script.sh | bash

我读到某个地方,stdin用管道输入bash,这就是为什么它没有提示任何东西。

任何帮助都会很棒。

谢谢你们

3 个答案:

答案 0 :(得分:6)

使用process substitution

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.