curlを使用してgitからbashスクリプトに引数を渡す

curlを使用してgitからbashスクリプトに引数を渡す

curlを使用してgitから取得したスクリプトにパラメータを渡す方法を探していますが、私のスクリプトにはパラメータが必要です。
次のようにスクリプトにパラメータを渡す方法はありますか?

bash <(curl -Ls <git-script-path>)

スクリプト使用法: ./script.sh -p admin-p admin提供しようとしています。bash <(curl -Ls <git-script-path>) -p admin

どんな助けでも大変感謝します。ありがとう

答え1

curl -Ls <git-script-path> | bash -s -- -p admin

これにより、bash接続された標準入力ストリームからシェルコマンドが読み取られますcurl。スクリプトから位置パラメータとしてアクセスできる2つのパラメータ-p。実行可能ファイルオプションの終わりを示すためにadmin必要です。--bash

1行スクリプトを使用してテストしますscript.shただ実行printf '"%s"\n' "$@"(引用符で囲まれたコマンドライン引数を別々の行に出力)私たちはあなたに代わって次のコマンドをcat script.sh実行します。curl

$ cat script.sh| bash -s -- -p admin
"-p"
"admin"

スクリプトに対話型操作が必要な場合、標準入力からスクリプト自体を読み取ることはできません。代わりに、ファイル名でスクリプトを指定してください。

$ bash <( curl -Ls <git-script-path> ) -p admin

これがあなたの質問の内容です。これを行うには、現在のシェルが使用法を理解する必要があることに注意してください<( ... )

答え2

これは別の手順で実行できます。まず、スクリプトをインポートしてファイルに入れます。

curl -sL https://...git > script.sh 

実行可能にする:

chmod +x script.sh

パラメータを使用して実行します。

./script.sh -p admin

個人旅行者として:

curl -sL https://...git > script.sh && chmod +x script.sh && ./script.sh -p admin

スクリプトを永久に保存したくない場合は、これを行うことができます。

tmpFile=$(mktemp) && curl -sL https://...git > $tmpFile && chmod +x $tmpFile && $tmpFile -p admin && rm $tmpFile

答え3

スクリプトに引数を渡すには、コマンドラインに引数を追加するだけです。

bash <(curl -Ls <git-script-path>) -p admin

パラメータのみを表示するコマンドの例:

$ bash <(echo 'echo args: "$@"') -p admin
args: -p admin

関連情報