IFSが空白文字のときに区切り文字をマージする理由

IFSが空白文字のときに区切り文字をマージする理由

たとえば、IFSがある場合、連続し<tab>た区切り文字は読み取りコマンドによってマージされます。そうでなければ、これは起こらないでしょう。例:

$ echo -e 'zero\tone\ttwo\tthree' | while IFS=$'\t' read -a x; do echo "${x[2]}"; done
two
$ echo -e 'zero\t\tone\ttwo\tthree' | while IFS=$'\t' read -a x; do echo "${x[2]}"; done
two
$ echo -e 'zero§one§two§three' | while IFS=§ read -a x; do echo "${x[2]}"; done
two
$ echo -e 'zero§§one§two§three' | while IFS=§ read -a x; do echo "${x[2]}"; done
one

ところで、なぜそうなのか?

ベストアンサー1

おすすめ記事