空白を介したbash引数の伝播

空白を介したbash引数の伝播

my-scriptでは、「$ 1」はスペースで区切られたトークン文字列です。

たとえば、この単一のパラメータを複数のパラメータに「拡張」して別のプログラムに渡すにはどうすればよいですか?

./my-script2 ...$1  # spread the string into multiple arguments, delineating by whitepace

質問を理解し、答えを見つけるのに苦労していることを願っています。

私はこれを試しました:

./my-script2 <<< "$1"

これ:

./my-script2 "" <<< $1

そして他の組み合わせもありますが、これはうまくいかないようです。 Bash v3以降をサポートする必要があります。

ベストアンサー1

./my-script2 $1

引用なしパラメータ受け取る噴射いつ拡大する:

シェルは、単語分割のために二重引用符内に表示されない引数拡張、コマンド置換、および算術拡張の結果をスキャンします。

これは指定されたPOSIX動作、一部のシェル(特にzsh)では、デフォルトでこれを無効にします。デフォルトを変更する場合、IFSこれはあなたの責任です。

おすすめ記事