定義によると、IFSはシェル組み込み変数ですか、環境変数ですか、それとも別の変数ですか?

定義によると、IFSはシェル組み込み変数ですか、環境変数ですか、それとも別の変数ですか?

Bourneシェルとその派生物では

定義によると、IFSはシェル組み込み変数ですか、環境変数ですか、それとも別の変数ですか?
(このプログラムモジュールは一般に文献でどのように分類されますか?)

ベストアンサー1

ソースによると、 2. シェルコマンド言語:

2.5.3 シェル変数

変数は、POSIX.1-2017システムインタフェースボリュームのXBD環境変数およびexec関数で定義されているように環境で初期化する必要があり、変数割り当てコマンドを使用して新しい値を付与できます。変数が環境で初期化されたら、すぐにエクスポート用にマークする必要があります。専用組み込みエクスポートを参照してください。変数の割り当て、readまたはgetoptsユーティリティの使用、forループのnameパラメータの使用、$ { name = word}拡張の使用、または実装拡張として提供される他のメカニズムを使用して、新しい変数を定義および初期化できます。

具体的にはIFS

IFSは文字リストの文字列として扱われ、フィールド分割、*特殊パラメータ拡張、および読み取りユーティリティを使用して行をフィールドに分割するために使用されます。値に有効な文字の一部を形成しないバイトが含まれている場合、フィールドの分割、拡張、およびユーティリティの使用の結果はIFS指定されません。*read

設定されていない場合はIFS、シェルのフィールド分割とユーティリティの read行分割が値に従って行われることを除いて、設定されていない変数に対して正常に機能する必要があります。IFS<space> <tab> <newline>

シェルは呼び出されたときに設定する必要がありますIFS<space> <tab> <newline>

おすすめ記事