【问题标题】:Quoting in sh bash ... ("") ($'') ('')引用 sh bash ... ("") ($'') ('')
【发布时间】:2015-05-15 10:30:08
【问题描述】:

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

我看到很多shell脚本包含

IFS=$'\n'

但是没有

IFS="\n"

至少在我看来没有区别。 并且在我的环境中都可以正常工作(据我所知), 这里有什么区别?这只是一种习俗吗?

【问题讨论】:

标签: bash shell quoting


【解决方案1】:

它们不一样。

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

【讨论】:

  • 我看到了不同之处!我不确定由此引起的差异..但我理解。 (我的意思是'在实际使用中')但是我可能会记得有一天当我遇到一些事情时你教给我的东西非常感谢你。
  • 我现在看到了。感谢您的评论。
猜你喜欢
  • 2011-03-23
  • 2014-09-16
  • 1970-01-01
  • 2013-11-01
  • 2011-08-09
  • 2014-09-21
  • 1970-01-01
相关资源
最近更新 更多