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"
双引号内的值将被解析或扩展。
我是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"
双引号内的值将被解析或扩展。