兩者直接的區別, 推薦使用$()
代替反引號
1. 單獨呼叫
兩者結果完全一樣。
[root@izwz91rruliuj88pj4zsw0z ~]# echo `pwd`
/root
[root@izwz91rruliuj88pj4zsw0z ~]# echo $(pwd)
/root
2. 巢狀呼叫$()
結果正確, 反引號結果不正確
當前目錄:
root@izhtbq9i9lb77uz:/home/dengfei/r# pwd
/home/dengfei/r
$()
鑲嵌結果正確
root@izhtbq9i9lb77uz:/home/dengfei/r# echo $(basename $(pwd))
r
反引號鑲嵌,結果報錯
root@izhtbq9i9lb77uz:/home/dengfei/r# echo `basename `pwd``
basename: missing operand
try 'basename --help' for more information.
pwd
3. 混合鑲嵌兩者都正確
root@izhtbq9i9lb77uz:/home/dengfei/r# echo $(basename `pwd`)
rroot@izhtbq9i9lb77uz:/home/dengfei/r# echo `basename $(pwd)`
r
shell程式設計中, 要用$()
取代反引號呼叫系統命令, 以避免不可預知的錯誤.
shell 中的單引號與反引號
我看360的課件有這麼一句話 然後我弄了半天,死活沒復現出來 shell的變數啥的都查過了,就是沒有相關的知識。還特地去糾結會不會跟系統特性有關?然後從ubuntu轉到了centos。一樣不行 最後我剛打算問乙個大佬,突然發現圖一的單引號跟我的不太一樣,然後試著換成鍵盤1前面那個反引號,終於復現了。...
shell指令碼中的反引號,單引號,雙引號與反斜槓
反引號位 經常被忽略,而且容易與單引號弄混。它位於鍵盤的tab鍵的上方 1鍵的左方。單引號 位於enter鍵的左方。在linux中反引號起著命令替換的作用。命令替換是指shell能夠將乙個命令的標準輸出插在乙個命令列中任何位置,將反引號中的字串做為命令來執行,我們在用shell程式設計時經常用的到,...
Shell中的引號,反引號,雙引號,反斜槓
轉貼自 http hi.baidu.com kfeng21 blog item 3b3fcc3fc1bc85f2838b131e.html shell可以識別4種不同型別的引字符號 單引號字元 雙引號字元 反斜槓字元 反引號字元 1.單引號 howard 0 script grep susan ph...