有没有办法将参数/选项传递给管道执行的脚本?

时间:2016-11-03 21:58:18

标签: bash arguments pipeline

我们知道可以在bash中跟进:

curl -Ls example.com/script.sh | bash

但我们可以通过一些论点吗?

curl -Ls example.com/script.sh | bash --option1

在这种情况下,bash会选择此选项。可能有一些方法将它传递给脚本吗?

2 个答案:

答案 0 :(得分:2)

这是-s选项的用途:

curl -Ls example.com/script.sh | bash -s -- --option1

由于-s明确告诉bash从标准输入读取其命令,因此它不会尝试将其第一个参数解释为从中读取命令的文件。相反,所有参数都用于设置位置参数。

或者,您可以使用流程替换而不是直接从标准输入读取。

bash <(curl -Ls example.com/script.sh) --option1

答案 1 :(得分:1)

你可以这样做:

( echo 'set -- --option1' && curl -Ls example.com/script.sh ) | bash 

在输入前添加set命令。