Bashのマニュアルページに特別なパラメータが「引用のみ可能で、割り当ては許可されていません」と記載されているのはなぜですか?

Bashのマニュアルページに特別なパラメータが「引用のみ可能で、割り当ては許可されていません」と記載されているのはなぜですか?

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=$_設定)。afoo_

おすすめ記事