3.5.7 Word分割(Word Splitting)

助记定义

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容