今、次のような行があります。
curl -fsSL http://git.io/vvZMn | bash
スクリプトをダウンロードし、標準入力ファイルとしてbashに渡します。追加のパラメータを使用してこのスクリプトを実行したいと思いますprint
。
たぶんこんなことはありませんか?
curl -fsSL http://git.io/vvZMn | bash -- print
しかし、これはうまくいきません。
答え1
私はあなたが探しているものが-s
オプションだと思います。を使用すると、-s
パラメータをスクリプトに渡すことができます。
これを説明するためのダミーの例は次のとおりです。
$ echo 'echo 1=$1' | bash -s -- Print
1=Print
ここでは、stdinで提供されたスクリプトに位置引数が与えられていることがわかりますPrint
。スクリプトには-u UUID
パラメーターが必要で、以下を含めることもできます。
$ echo 'echo arguments=$*' | bash -s -- -u UUID print
arguments=-u UUID print
したがって、あなたの場合は次のようになります。
curl -fsSL http://git.io/vvZMn | bash -s -- print
または、
curl -fsSL http://git.io/vvZMn | bash -s -- -u UUID print
Stephen Harrisが指摘したように、スクリプトをダウンロードして見えないように実行するのはセキュリティ上の問題です。
答え2
システムにいる場合は、次のものを/dev/stdin
使用できます。
$ echo 'echo 1=$1' | bash /dev/stdin print
1=print
するいいえこれを行う:
$ echo 'echo 1=$1' | bash /dev/stdin -- print
1=--
を使用するには--
:
$ echo 'echo 1=$1' | bash -- /dev/stdin print
1=print