参考:
https://stackoverflow.com/questions/4642915/passing-parameters-to-bash-when-executing-a-script-fetched-by-curl/4642975
通常执行发布机上的脚本时习惯使用以下方式:
1
|
curl http:
//example
.com
/script
.sh |
bash
|
若涉及到传入参数时,则可使用
1
2
3
|
1. curl http:
//example
.com
/script
.sh |
bash
-s arg1 arg2
2. curl http:
//example
.com
/script
.sh |
bash
/dev/stdin
arg1 arg2
3.
bash
<( curl http:
//example
.com
/script
.sh ) arg1
|
若参数中带有"-",则可使用长选项"--"解决
1
|
curl http:
//example
.com
/script
.sh |
bash
-s -- arg1 arg2
|
若参数为"-p blah -d blah",则可使用以下命令执行
1
|
curl http:
//example
.com
/script
.sh |
bash
-s -- -p blah -d blah
|
不止是curl的输入,其他方式的输入也满足。可以通过以下例子深入理解下
1
2
|
echo
'i=1; for a in $@; do echo "$i = $a"; i=$((i+1)); done'
| \
bash
-s -- -a1 -a2 -a3 --long some_text
|
本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1950743,如需转载请自行联系原作者