Swi*_*tch 12 linux shell scripting command-line
假设我有一个脚本:my_script.sh
而不是做
./my_script.sh
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
cat my_script.sh | <some command here>
Run Code Online (Sandbox Code Playgroud)
这样脚本就会执行.这可能吗?
使用情况是,如果我想执行脚本是wget的或s3cat等的输出现在我把它保存到一个临时文件,将其更改为可执行文件,然后运行它.有没有办法直接做到这一点?
Mat*_*Mat 20
只需将它管道到您最喜欢的shell,例如:
$ cat my_script.sh
set -x
echo hello
$ cat my_script.sh | sh
+ echo hello
hello
Run Code Online (Sandbox Code Playgroud)
(set -x使shell在运行之前打印出它将要运行的每个语句,方便调试,但它与您的问题无关 - 仅用于演示目的.)
你可以使用:
cat my_script.sh | xargs -i <some_command> {}
Run Code Online (Sandbox Code Playgroud)
要么:
cat my_script.sh | bash -
Run Code Online (Sandbox Code Playgroud)