Linux: shell 中命令代换 $() 和 ``(有图有代码有真相!!!)
一、命令代換(命令替換)
由 ` `?或 ?$() 括起來的也是一條命令,shell先執(zhí)行該命令,再將結(jié)果立刻代換到當(dāng)前命令行中。
簡單例子:
DATE=`date`
echo $DATE
?DATE=$(date)
??echo $DATE
執(zhí)行結(jié)果:
二、優(yōu)缺點(diǎn):
1、反引號(hào)的缺點(diǎn)
1).它比較陳舊。?
2).非常容易和單引號(hào)混淆。?
3).它會(huì)對\進(jìn)行跳脫處理。而$()不會(huì)。?
結(jié)果分析:我們知道,shell里的單引號(hào)會(huì)保持所有字符的字面值;
正確的的執(zhí)行結(jié)果應(yīng)該是: ? ?\ \?
實(shí)際上用反引號(hào)輸出的結(jié)果卻是: ? \ ??
這就是由于它對 \ 進(jìn)行了跳脫處理。
總結(jié):所以,一般情況下建議使用$(),這樣比較直觀,但是它也有它的缺點(diǎn),并不是所有的類unix系統(tǒng)都支持這種方式,但反引號(hào)是肯定支持的。也就是說移植性不如反引號(hào)
2、$()
1)以$(command) 的形式可以互相嵌套多個(gè)命令擴(kuò)展。
2)反引號(hào)基本上可用在全部的 unix shell 中使用,若寫成 shell script ,其移植性比較高。
但是 $( ) 并不見的每一種 shell 都能使用
總結(jié)
以上是生活随笔為你收集整理的Linux: shell 中命令代换 $() 和 ``(有图有代码有真相!!!)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数式反应型编程(FRP)
- 下一篇: linux 其他常用命令