$()中的內容與不加$()有什么區別,例如$(/usr/local/hadoop/bin/hadoop classpath)與/usr/local/hadoop/bin/hadoop classpath兩者有何區別???
關于這個問題,筆者建議可以參考如下文章:
Linux—shell中$(( ))、$( )、``與${ }的區別 - chengd - 博客園 (cnblogs.com)
相信看完之后有更深刻的了解。
簡而言之:
在Shell腳本中,$()
是用來執行命令并獲取其輸出結果的語法。因此,$(/usr/local/hadoop/bin/hadoop classpath)
會執行/usr/local/hadoop/bin/hadoop classpath
這個命令,并將其輸出結果作為字符串返回。
而/usr/local/hadoop/bin/hadoop classpath
則是直接指代一個路徑或者命令,并不會執行其中的命令,只是簡單地把它作為一個字符串。
因此,如果想要獲取/usr/local/hadoop/bin/hadoop classpath
這個命令的輸出結果,應該使用$(/usr/local/hadoop/bin/hadoop classpath)
形式
如上可直觀地看出兩者之間的區別~~(●'?'●)