3.5.7 Word分割(Word Splitting)

2017-10-17  本文已影响0人  Doerthous

助记定义

IFS字符:shell变量$IFS中的每个字符
WS字符(whitespace characters):space(‘ ’),tab(‘\t’),newline(‘\n’)
IFSWS字符:出现在$IFS中的WS字符

输入


未被双引号quoted的parameter展开、command替换、算术展开的结果将作为Word分割的输入。

分隔符


IFS字符IFSWS字符序列

分割逻辑


如果IFS is unset,或者$IFS == " \t\n"
    忽略出现在input的开头和结尾的由IFSWS字符组成的字符序列
如果$IFS != " \t\n"
    忽略出现在input的开头和结尾的由IFSWS字符组成的字符序列
    任意一个非IFSWS字符的IFS字符后面紧跟着IFSWS字符序列将delimits a field
    (?不知道这里的field怎么理解?)
如果$IFS == ""
    不执行word分割

空值处理


""或''保留,并作为空串传给commands
移除由parameter展开的未被quoted的空值
作为一个word的一部分的quoted空值将被移除,如-d""移除后为-d

上一篇 下一篇

猜你喜欢

热点阅读