假设我有一个脚本: my_script.sh
而不是做
./my_script.sh
我想做类似的事情:
cat my_script.sh | <some command here>
这样脚本就会执行。这可能吗?
用例是我想要执行的脚本是wget或s3cat等的输出。现在我将它保存到临时文件,将其更改为可执行文件,然后运行它。有没有办法直接这样做?
答案 0 :(得分:19)
只需将它传递给您最喜欢的shell,例如:
$ cat my_script.sh
set -x
echo hello
$ cat my_script.sh | sh
+ echo hello
hello
(set -x
使shell在运行它之前打印出它将要运行的每个语句,方便调试,但它与您的问题无关 - 仅用于演示目的。)< / p>
答案 1 :(得分:5)
您可以使用:
cat my_script.sh | xargs -i <some_command> {}
或:
cat my_script.sh | bash -
答案 2 :(得分:1)
RVM建议将此方法发送到run their installer:
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)