Next: $# Up: 特殊なシェル変数 Previous: 特殊なシェル変数


IFS

 

この変数にはシェルがコマンドラインを走査するときの区切り文字のリストが格納 されています。通常はホワイトスペース文字と呼ばれるスペース、タブ、改行文字 がこれにあたります。

この IFSの内容はユーザの任意の文字に変更することができますから、ホワイトスペー ス文字以外で区切られた1行から文字列を切り出す時に有効に働きます。このため、 IFSには1つのレコードを構成するそれぞれのフィールドを区切る 文字が格納されていると考えた方がより現実的です。 ちなみに IFSとは Internal Field Separatorの略です。

ここでちょっとIFSの内容を見てみましょう。IFSはシェル変数ですから

$ echo $IFS
とするだけで見れそうですが、次の1行が空くだけで何も表示されません。 これはIFSの内容が空白文字としてスペース、タブ、改行から成っているためです。 ちょっと工夫をして、次のようにすれば内容を見ることができます。
$ echo -n "$IFS" | od -b
0000000 040 011 012
0000003
これはechoの出力をodコマンドにパイプでつなぎIFSの内容の8進数ダンプしたもの です。先頭の数字は入力ファイルの先頭からのオフセット番地で、 それに続く 040 011 012 がIFSの内容となります。



Riichiro Saito
1995年08月29日(火) 11時41分26秒 JST