【使用例紹介】区切り文字:$IFS【シェルスクリプト】

雑学

備忘録になります。for文に渡すリストの区切り文字等、環境変数$IFSが参照されます。環境に依りますが、$IFSのデフォルトの内容はスペース、タブ、改行が基本のようです。

自環境の$IFSの内容を確認

$ echo $IFS | sed 's/^/[start]/g' | sed 's/$/[end]/g' | sed 's/\t/<tab>/g' | sed 's/ /<space>/g'
[start]<space><tab>[end]
[start][end]

私の環境では$IFSにスペース、タブ、改行の順に記載されていました。

$IFSの内容を変更する

例えば、区切り文字を”,(カンマ)”に変更する場合は以下のようにします。

$ cat ./wrk.sh
LIST="AAA,BBB,CCC"

IFS=‘,’
for VALUE in $LIST; do
    echo $VALUE
done

$ ./wrk.sh
AAA
BBB
CCC

関連リンク