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