web-dev-qa-db-ja.com

bashへの入力であるスクリプトに引数を渡す方法

現在、私はこのようなワンライナーを持っています:

curl -fsSL http://git.io/vvZMn | bash

スクリプトをダウンロードし、それをstdinファイルとしてbashに渡します。追加の引数printを使用してこのスクリプトを実行したいと思います。

たぶんこんな感じ?

curl -fsSL http://git.io/vvZMn | bash -- print

しかし、これは機能しません。

10
k06a

あなたが探しているのは-sオプション。 -s、スクリプトに引数を渡すことができます。

これを説明するためのダミーの例として:

$ echo 'echo 1=$1' | bash -s -- Print
1=Print

ここでは、標準入力で提供されるスクリプトに位置パラメータ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が指摘したように、スクリプトをダウンロードして実行することは、目に見えないことですが、セキュリティ上の問題です。

16
John1024