shell的word splitting特性

本文详细解析了在Shell脚本中,IFS(Internal Field Separator)如何影响变量的展开过程。当IFS未设置或为空时,它会影响双引号外的变量展开后的词分割行为。在不使用双引号的情况下,即使原本是一个连续的字符串也会被分割成多个词。而当变量在双引号内展开时,词分割将不会发生,确保了变量内容的完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当IFS不为空时或未被设置时,不是在双引号中的shell展开进行后,会对展开结果进行word splitting,即进行词分割,如a="1 2 3",当进行$a操作后,结果1 2 3会变成三个单独的词。如果是在双引号内执行即“$a”,则不会进行词分割,结果是一个词,当把$a作为参数使用时,不加双引号时,因为进行了词分割所以实际是传递了三个参数,如果带双引号传递时,则是当成一个参数。

转载于:https://www.cnblogs.com/buddy916/p/10292042.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值