$ @にパラメータを追加するにはどうすればよいですか?

$ @にパラメータを追加するにはどうすればよいですか?

... && add-arg 'something'私は駅などの位置パラメータに「何か」を追加できるようにしたいと思いますshift

私はそれを試しましたが、... && set "$@ something"それは動作しません。条件なしset "$@ something"でそれをするだけでうまく動作するようです。

ベストアンサー1

すべてのPOSIXシェルでは、

set -- "$@" "value"

value位置引数リストの末尾に追加されます(実際にはリストを新しく長いリストに置き換えます)。

set -- "value" "$@"

最初に追加します(技術的には最初の要素が削除されるため、shiftaとは反対です)。shiftこれはに適用されますzsh

--次の値がで始まる場合は、誤ってオプションとして解釈されるのを防ぐために使用されます-

特殊変数は、個別に参照される各位置引数の値に拡張されるため、$@ほぼ排他的に使用されます。"$@"式は、"$@ somethingelse"個別に引用された位置引数のリストに展開され、最後の引数に<space>somethingelse追加されます。

位置パラメータの値を次のように使用します。単一文字列スペース(または最初の文字$IFS)で区切って"$*""$* somethingelse"単一の文字列として明確に定義されている)を使用してください。しかし、これはいいえこの場合、あなたが望むのは、値のリストを単一の値に縮小することです。

おすすめ記事