curlで取得したスクリプトに引数

インストール用シェルスクリプトをcurlでダウンロードし、そのままシェルに渡して実行することが増えてきました。

例えば、HELM をインストールする場合、以下のコマンドでインストールする方法が紹介されています。

$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

上記スクリプトを実行すれば、最新版のHELMがインストールされますが、実は –version という引数を与えることで、バージョンを指定することができます。これを、上記のようにcurlでダウンロードして直接bashで実行したい場合、bash の -s オプションを使えばできます。

試しに、curl でダウンロードしたと想定して、「echo $1 $2」を実行するスクリプトに、123 と 456 を引数で与えると、このように引数の内容が表示されます。

$ echo 'echo $1 $2' | bash -s 123 456
123 456

なお、引数が “–version” のように “-” があると、bash の引数と理解されてしまうので、その場合は、”–” を -s の後ろにつけましょう。

$ echo 'echo $1 $2 $3' | bash -s -- --version 123
--version 123
タイトルとURLをコピーしました