初识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时,加上双引号,需要调用命令时,在双引号里面使用$(),记住一中自己常用的就行