>export FOOBAR=foobar; IFS=b echo ${FOOBAR}
我期待看到
foo ar
但是我看到了
foobar
为什么?
答案 0 :(得分:2)
IFS尚未生效。添加另一个“;”:
FOOBAR=foobar IFS=b; echo ${FOOBAR}
在man bash
部分 SIMPLE COMMAND EXPANSION
你可以阅读(缩写):
When a simple command is executed
解析器标记为变量赋值的单词(命令名称前面的单词)将保存以供以后处理。
扩展非变量赋值或重定向的单词。
- ...
- 每个变量赋值中的=之后的文本... []被分配给变量。
醇>
所以IFS = b是在扩展$ FOOBAR之后完成的。
答案 1 :(得分:-1)
[edit]我删除了技术上不正确的答案。
http://tldp.org/LDP/abs/html/internalvariables.html “这个变量决定了Bash在解释字符串时如何识别字段或字边界。”