问:为什么要用引号?
答:变量值出现空格时,比如 name=xiao ming 这样执行就会出现问题,而必须用引号括起来,比如 name=“xiao ming”。
反引号
` 是反引号是在ESC键下面的,反引号代表引用linux的命令。为了防止混淆或 POSIX 规范的角度来说,尽量使用 $(命令) 的方式来引用linux命令的输出,而不要使用反引号。
下面2行输出结果是一样的
echo $(date)
echo `date`
下面2行输出结果是一样的
echo $(expr 1 + 1)
echo `expr 1 + 1`
单引号
被单引号括起来的字符都是普通字符,就算特殊字符也不再有特殊含义;
双引号
被双引号括起来的字符中,$、\、反引号 有特殊含义。
$代表引用变量值,\代表转义字符,反引号代表引用linux的命令。
其实在shell中 echo的参数-e能够解析转义字符,在单引或者双引的情况下都能够解析。
-e 启用下列反斜杠转义的解释
echo 'a\nb' #结果是a\nb
echo -e 'a\nb'
运行结果是:
a
b