在sh bash中引用...("")($'')('')

时间:2015-03-13 02:15:41

标签: bash shell quoting

我希望说我理解BASH中使用的引用及其区别" "' '$' '

我看到很多包含

的shell脚本
IFS=$'\n'

但没有

IFS="\n"

至少对我来说,没有区别。 在我的环境中都正常工作(据我所知), 这有什么区别?这只是个风俗吗?

1 个答案:

答案 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=""