初识shell,其中的引号的作用总能把我绕晕,于是去查了下资料来总结一下
- 双引号" ":会把引号的内容当成整体来看待,允许通过$符号引用其他变量值
- 单引号' ':会把引号的内容当成整体来看待,禁止引用其他变量值,shell中的特殊符号都被视为普通字符
- 反撇号` `:反撇号和$()一样,引号或括号里的命令会优先执行,如果存在嵌套,反撇号不能用
#打印系统时间,以完整日期格式显示
[root@localhost data]# date +%F
2022-03-31
#如果引号里面是字符串,单引号还是双引号是无所谓的
[root@localhost data]# echo "hello world"
hello world
[root@localhost data]# echo 'hello world'
hello world
#如果要调用某一个命令的执行结果,需要用到$符号
#$(date +%F)表示调用这个命令的执行结果
#这时就必须使用双引号
[root@localhost data]# echo "$(date +%F)"
2022-03-31
#使用单引号,识别不了$的调用,而认为$只是一个普通字符串
[root@localhost data]# echo '$(date +%F)'
$(date +%F)
#反撇号的含义等于$(),是调用命令的结果
[root@localhost data]# echo `date +%F`
2022-03-31
[root@localhost data]#
#但是当有嵌套时,反撇号不能嵌套使用
[root@localhost data]# echo `echo `date +%F``
date +%F
[root@localhost data]# echo $(echo `date +%F`)
2022-03-31
[root@localhost data]#
?总结:
我们只要记住,使用echo时,加上双引号,需要调用命令时,在双引号里面使用$(),记住一中自己常用的就行
|