IFS变量对加双引号和不加双引号变量的区别对待
1. IFS(Internal Field Seprator) 变量
IFS 变量是一个特殊的环境变量,叫做内部域分隔符。IFS 环境变量定义了 bash shell 用作字段分隔符的一系列字符。如果 bash shell 在数据中看到了这些字符中的任意一个,它就会假定这表明了列表中一个新数据字段的开始。默认情况下 IFS 指定为空白符(即空格、tab 符、换行符)。
2. IFS对待未加双引号的变量
比如在 bash shell 中输入以下代码:
123IFS=:_str_="hello:world"for i in $_str_; do echo $i; done
会得到以下结果:
12helloworld
原因是引用字符串变量 $_str_ 没有加双引号时,Shell 在 for 语句中根据 IFS 变量将字符串 $_str_ 进行切割,切割成很多个字符串,然后逐个 echo $i 输出。
3. IFS对待加双引号的变量
在 Shell 中输入以下代码:
123IFS=:_str_="hello:world"for i in "$ ...