ほとんどのPOSIX準拠シェル(たとえばbash
、、、、、ksh
など)では、変数の割り当てが発生したdash
ときにフィールド分割とファイル名拡張(シェルでサポートされている場合は中括弧拡張を含む)は割り当ての右側では実行されません。mksh
pdksh
$ IFS=/
$ a=1/2
# Field splitting and filename expansion turned off here
$ b=$a
$ IFS=
$ printf '%s\n' $b
1/2
一部のシェル文書(強く打つ、ケシ)この内容に言及しましたが、POSIX ドキュメントいいえ。
ほとんどのPOSIX準拠シェルでこの動作を確認できるため、POSIXドキュメントで指定されていないため、移植可能かどうか疑問に思います。
答え1
どこで見るかによって異なります。 ~から第2章セクション9.1:
チルダ拡張、パラメータ拡張、コマンド置換、算術拡張、および引用符の削除を割り当てる前に、すべての変数割り当てを拡張する必要があります。
このリストは完全だと思います。フィールド分割フィールド分割不足が POSIX 仕様であるという言及はありません。