我认为广泛认同的是,unset IFS
会将 IFS 环境变量恢复为其默认值。
我找不到以下代码出错的原因。
echo -n "_${IFS}_" | xxd
IFS=':'
echo -n "_${IFS}_" | xxd
unset IFS
echo -n "_${IFS}_" | xxd
echo "${IFS-IFS is unset}"
返回这个
0000000: 5f20 090a 5f _ .._
0000000: 5f3a 5f _:_
0000000: 5f5f __
IFS is unset
在我的Ubuntu和Android系统中都是如此。
正如您所看到的,IFS实际上是未设置的。
提前致谢。
$' \t\n'
,就像 @tripleee 的链接所解释的那样。你们真的读懂我的问题了吗? - Claudiounset IFS
确实会取消设置IFS
。它不会被设置为$' \t\n'
。虽然空的IFS
也像将其设置为$' \t\n'
一样运作。 - anubhavaunset IFS
,则在其他情况下可能会导致难以找到的错误。 - Stefan Fabian