Word Splitting

shell 检测不在双引号引用中发生的参数扩展,命令替换和算术扩展的结果, 进行 word splitting(词的拆分)。

shell 将 IFS 的每个字符都作为定界符,根据这些字符来将其他扩展的结果分成词。如果 IFS 没有定义,或者它的值是默认的 <space><tab><newline>, 那么 IFS 字符的任何序列都将作为分界之用。如果 IFS 的值是默认之外的值,那么词开头和结尾的空白字符 spacetab 都将被忽略,只要空白字符在 IFS 的值之内 (即, IFS 包含空白字符)。 任何在 IFS 之中但是不是 IFS 空白的字符,以及任何相邻的 IFS 空白字符,将字段分隔开来。 IFS 空白字符的序列也被作为分界符。如果 IFS 的值是空,不会发生词的拆分。

显式给出的空值参数 (""'') 将被保留。 隐含的空值参数,来自于空值的参数扩展,如果没有引用则将被删除。 如果空值的参数在双引号引用中扩展,结果是空值的参数,将被保留。

注意如果没有发生扩展,不会进行词的拆分。