跳到主要内容

shell-疑问记录

单引号、双引号和反引号区别

  • 被单引号括起来的字符都是普通字符,就算特殊字符也不再有特殊含义;
  • 被双引号括起来的字符中,"$"、"\"`是拥有特殊含义的
    • "$"代表引用变量的值
    • 反引号`代表引用命令
  • 反引号。如果需要调用命令的输出,或把命令的输出赋予变量,则命令必须使用反引号包含。

    反引号的作用和 $(命令) 是一样的,但是反引号非常容易和单引号搞混,所以推荐尽量使用 $(命令) 的方式引用命令的输出

测试例子:

#!/bin/bash

foo=justwe
echo foo
echo "输出变量:foo"
echo '输出变量:$foo'
echo "输出变量:$foo"
# echo `输出日期:$foo` # 这条指令不能正常执行
echo '输出日期:`date`' # 如果反引号括起来的命令又被单引号括起来,那么这条命令不会执行,`date`会被当成普通字符输出
echo "输出日期:`date`" # 反引号的命令会正常执行
echo "输出日期:$(date)" # $(date) 可以正常执行