歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> shell中的IFS變量

shell中的IFS變量

日期:2017/2/27 16:04:37   编辑:SHELL編程
IFS的全名為Internal Field Separator,用來在變量擴展後進行單詞分割,其默認值是<space><tab><newline>。可以通過cat -etv <<<"$IFS"來查看。IFS變量通常與read命令、參數擴展 以及命令替換一起使用。

bash的man page中這樣寫道:
shell把IFS中的每個字符都看做一個分隔符,並用它們來將參數擴展的結果切分成word。如果IFS沒有設置,或者設置為默認值,那麼先前擴展的結果中,開始和末尾的空白符序列會被忽略,而其他的沒有在開始和末尾的IFS字符序列用來分割word。如果IFS中含有非<space><tab><newline>字符,那麼位於word開頭的空白符<space><tab>會被忽略,只要這些空白符包含在IFS的值中;IFS中的任何非空白符連同相鄰的空白符劃分一個field。IFS空白符序列也被當做一個分隔符。如果IFS是null,則不會進行分割。

總結:

  1. IFS中的字符可以分為兩類:空白符(<space><tab><newline>)和非空白符,兩者的用法有區別:開頭和結尾的空白符會被忽略,兒非空白符不能被忽略;連續的空白符被當做一個分隔符,而連續的非空白符被當做多個分隔符。
  2. 一個非空白符連同其相鄰的空白符序列一起構成一個分隔符。
Copyright © Linux教程網 All Rights Reserved