POSIXがawkで「$(expression)」を指定しないのはなぜですか?

POSIXがawkで「$(expression)」を指定しないのはなぜですか?

この質問に答えてください、私が見つけた内容は次のとおりです。

echo 1 2 | awk '{print $(expression)}'

戻り値表現する指定されていません。まるで混乱を招くように表現する$(expression)戻り値0(数値コンテキストで評価)または空の文字列""(文字列コンテキストで評価)を返すか、エラーが発生する必要がある初期化されていない変数。

その時点から、フィールド変数は次のように定義されます。

フィールド変数は、「$」の後に数字または数式が続く必要があります。

POSIXが戻り値を保持する理由どんな表現でも未指定をフォローします$か?歴史的な理由なのか、それとも別の理由なのか?

答え1

POSIXは既存の慣行を性文化することに取り組んでおり、避けられない場合にのみ新しい地平を開きました(例えば、これは後で検討した標準です;-)。 Unixコードは決して一貫性の典型ではなかったので(たとえば、元のvi(1)はおそらく重要な瞬間に実行可能ファイルの数バイトを削除するために完全にランダムな終了コードを返しました)、他の何百ものグループAdaptedで使用されました。さまざまなアジェンダに応じて変更され、レプリカ(GNUなどの他の多くがあります)が作成されますが、さまざまなランダムな動作に対処するために多くの部分が定義されていません。

関連情報