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>