Bash 中 "" 和 `` 嵌套的问题

如何理解以下两句 Bash 脚本?执行结果都是一样的,输出了 date 命令输出中的第二个域,为三月份

echo "`date | awk '{print \$2}'`"
Mar

echo "`date | awk '{print $2}'`"
Mar

 

对于以下脚本,在 " " 中保留了 ` ` 和 $ 的特殊含义,下面脚本中取消了 $ 元字符特殊含义,bash 在实行时不做变量替换, awk 识别到的仅仅是 {print $2},awk在执行时才执行变量替换命令

echo "`date | awk '{print \$2}'`"

 

对于以下脚本,未取消 $ 的特殊含义,bash程序在执行过程中做变量替换,相当于 awk 直接获得到了 {print "Mar"}

echo "`date | awk '{print $2}'`"

 

以上两个脚本仅仅是变量替换时间不同而已,所以结果一样。

posted @ 2020-03-20 17:35  挠到头秃  阅读(760)  评论(0编辑  收藏  举报