bash:variable 带双引号

bash:variable with double quotes

我是bash脚本编程的新手,当我学习变量扩展时,我对变量感到困惑。
1.when我想定义一个变量,我可以这样做:

name=foo
name="foo"
name='foo'

他们有什么区别? 2.when 我想打印一个变量,我可以这样做

echo $name
echo "$name"
echo "$(name)"

3.I还会遇到如下部分:

name=$(date)

"()" 是做什么的,为什么它可以解析命令?

我用谷歌搜索了我的问题并阅读了一些文档,例如 (http://www.serverwatch.com/tutorials/article.php/3898896/Single-vs-Double-Quotes-in-Bash.htm) 但我仍然感到困惑,有人能解释清楚吗?

name=foo 因为值不在引号内,所以它不会接受带有空格的值,例如 name=foo bar

name='foo' 这不会扩展值中存在的文本。也就是说 foo $bar 将被读作文字 foo $bar。它不会展开 $b

name="foo" 双引号内的值将被解析或扩展。