参考:
https://stackoverflow.com/questions/4642915/passing-parameters-to-bash-when-executing-a-script-fetched-by-curl/4642975
通常执行发布机上的脚本时习惯使用以下方式:
- curl http: //example.com/script.sh | bash
若涉及到传入参数时,则可使用
- . curl http: //example.com/script.sh | bash -s arg1 arg2
- . curl http: //example.com/script.sh | bash /dev/stdin arg1 arg2
- . bash < ( curl http: //example.com/script.sh ) arg1
若参数中带有 "-",则可使用长选项 "--" 解决
- curl http: //example.com/script.sh | bash -s -- arg1 arg2
若参数为 "-p blah -d blah", 则可使用以下命令执行
- curl http: //example.com/script.sh | bash -s -- -p blah -d blah
不止是 curl 的输入,其他方式的输入也满足。可以通过以下例子深入理解下
- echo 'i = 1;
- for a in $@; do echo "$i = $a"; i = $((i + 1)); done' | bash - s -- - a1 - a2 - a3 --long some_text
curl 方式执行脚本时传参问题
来源: http://www.bubuko.com/infodetail-2227186.html