shell脚本中,三种引号分别为:单引号(‘’),双引号(“”),反引号(``),反引号就是键盘esc下面的那个键。
(1) 单引号:在单引号之间的内容,是不会被解析的,会原样输出。
var=123
echo '$var'
结果为:$var
(2) 双引号:在双引号之间的内容,会被解析到,如果是取变量内容,就会将变量结果显示出来。与不加任何引号是一样的效果。
var=123
echo "$var"
结果为:123
(3) 反引号:反引号之间一般都是写命令,会显示命令的执行结果。
var=`whoami`
echo $var
结果为:root(就是你的当前登录用户)
(4) 在Shell脚本中,双引号(")和单引号(')在一起使用会有不同的效果:
双引号中的单引号不会被特殊处理,仍然被视为普通字符。
单引号中的双引号不会被特殊处理,仍然被视为普通字符。
变量在双引号中会被展开,但在单引号中不会被展开。
#!/bin/bash
name="Alice"
# 双引号中的单引号不会被特殊处理
echo "Hello, 'World'!" # 输出: Hello, 'World'!
# 单引号中的双引号不会被特殊处理
echo 'Hello, "World"!' # 输出: Hello, "World"!
# 变量在双引号中会被展开
echo "My name is $name." # 输出: My name is Alice.
# 变量在单引号中不会被展开
echo 'My name is $name.' # 输出: My name is $name.
#最外层双引号,变量处单引号,会展开变量,同时将单引号作为普通字符处理
echo "Hello, '${name}'!" #输出 Hello, 'Alice'!
#最外层单引号,变量处双引号,不会展开变量,将所有内容作为普通字符
echo 'Hello, "${name}"!' #输出 Hello, "${name}"!