shell-疑问记录
单引号、双引号和反引号区别
- 被单引号括起来的字符都是普通字符,就算特殊字符也不再有特殊含义;
- 被双引号括起来的字符中,
"$"、"\"
和`
是拥有特殊含义的- "$"代表引用变量的值
- 反引号
`
代表引用命令
- 反引号。如果需要调用命令的输出,或把命令的输出赋予变量,则命令必须使用反引号包含。
反引号的作用和 $(命令) 是一样的,但是反引号非常容易和单引号搞混,所以推荐尽量使用 $(命令) 的方式引用命令的输出
测试例子:
#!/bin/bash
foo=justwe
echo foo
echo "输出变量:foo"
echo '输出变量:$foo'
echo "输出变量:$foo"
# echo `输出日期:$foo` # 这条指令不能正常执行
echo '输出日期:`date`' # 如果反引号括起来的命令又被单引号括起来,那么这条命令不会执行,`date`会被当成普通字符输出
echo "输出日期:`date`" # 反引号的命令会正常执行
echo "输出日期:$(date)" # $(date) 可以正常执行