我希望说我理解BASH中使用的引用及其区别" "
,' '
,$' '
。
我看到很多包含
的shell脚本IFS=$'\n'
但没有
IFS="\n"
至少对我来说,没有区别。 在我的环境中都正常工作(据我所知), 这有什么区别?这只是个风俗吗?
答案 0 :(得分:3)
它们不一样。
IFS=$'\n'
将IFS
的值设置为文字换行符。
IFS="\n"
将IFS
的值设置为字符串\n
。
请参阅?
$ IFS=$'\n'
$ declare -p IFS
declare -- IFS="
"
$ IFS="\n"
$ declare -p IFS
declare -- IFS="\\n"
$ IFS="\n" read a b c <<<$'anbncndn'
$ declare -p a b c
declare -- a="a"
declare -- b="b"
declare -- c="cndn"
$ IFS=$'\n' read a b c <<<$'anbncndn'
$ declare -p a b c
declare -- a="anbncndn"
declare -- b=""
declare -- c=""