stdinから来るbashスクリプトに最初/2番目の引数を追加する方法

stdinから来るbashスクリプトに最初/2番目の引数を追加する方法

私はこれを持っています:

bash <(
  curl_url='https://raw.githubusercontent.com/oresoftware/run-tsc-if/master/run.sh'
  curl -H 'Cache-Control: no-cache' --silent "$curl_url"
)

そのURLのbashスクリプトはパラメータを使用します$1。この実行スタイルを使用してパラメータを渡す方法はありますか、それとも環境変数を使用する必要がありますか?

私はこれがうまくいくと思いましたか?

bash "first arg" <(
  curl_url='https://raw.githubusercontent.com/oresoftware/run-tsc-if/master/run.sh'
  curl -H 'Cache-Control: no-cache' --silent "$curl_url"
)

しかし、これは推測であり、間違っているようです。

私のテストによると、これは正しいようです。

bash  <(
  my_url='https://raw.githubusercontent.com/oresoftware/run-tsc-if/master/run.sh'
  curl -H 'Cache-Control: no-cache' --silent "$my_url"
) "first arg"  # add the argument here

誰かがこれを確認できたらいいと思います。次のように確認されます。

bash <(echo 'echo "first: $1"') 'blaq'

次のようにエコーされます。

まず:ブラック

ベストアンサー1

あなたはそれを使用することができますプロセスの交換そして生成されたスクリプトをBashの標準入力にリダイレクトします。

$ bash -s 'first argument' 'second argument' < <(echo 'printf "%s\n" "$@"')
first argument
second argument

コマンドを次echoのように置き換えcurlます。

からman bash

-sオプションがある場合、またはオプション処理後に残りの引数がない場合は、標準入力からコマンドを読み取ります。このオプションを使用すると、対話型シェルを呼び出すときに位置パラメータを設定できます。

おすすめ記事