man bash
内容は次のとおりです。
Special Parameters The shell treats several parameters specially. These parameters may only be referenced; assignment to them is not allowed.
まあ、shift
変化@
し*
(もちろん同じように)。実際にset -- one two three
私が欲しいものを割り当て@
ます*
。
それでは、私がman
ページの内容を誤解しているのでしょうか?
ベストアンサー1
特殊パラメータには割り当てられません。代入演算子(1=foo
、、、、…)は使用できません@=(foo bar)
。?=0
割り当てパラメータ(${1=foo}
、...)を使用して設定を拡張することはできません。
もちろん、変更することはできますがset
(オプションではなく引数を使用)、またはshift
組み込み関数を使用して位置引数を設定し、$#
(set
オプションを使用)変更し$-
、setコマンドを実行するなど、割り当て以外の間接的な方法を使用する必要があります$?
。など。
例外的に、通常は_
固定されていませんが、実際にに割り当てることができます(空の文字列として、およびに_=foo a=$_
設定)。a
foo
_