我注意到
IFS=;
read v1 v2 <<< "hey;hello"在$v1中存储整个字符串“嘿嘿”
而
IFS=";"
read v1 v2 <<< "hey;hello"是否执行预期的操作,即在$v1中存储"hey“,在$v2中存储"hello”
为什么会这样呢?据我所知,只要不涉及空格,就不需要在赋值字符串时使用引号
发布于 2022-08-08 16:27:29
据我所知,只要不涉及空格,就不需要在赋值字符串时使用引号
赋值的右侧只禁用全局和字符串拆分;否则,它在语法上与任何其他上下文类似。
因此,需要引用的不仅仅是空格--当字符串包含的字符被解析为某种语法时,仍然需要引号(除了在上下文中被压缩的两种类型的扩展之外),这些字符是您想要避免的。
;是一个命令分隔符;因此,当未引用时,它将终止当前命令。因此,您需要在这里引用或转义它。
https://stackoverflow.com/questions/73279902
复制相似问题