Linux中的$符號命令

1 bash和sh的區別

bash是 Bourne Again SHell 是linux標準的默認shell ,它基於Bourne shell,吸收了C shell和Korn shell的一些特性。bash完全兼容Bourne shell,也就是說用Bourne shell的腳本不加修改可以在bash中執行。
sh是Bourne shell 這個是UNIX標準的默認shell,對它評價是concise簡潔 compact緊湊 fast高效 有AT&T編寫,屬於系統管理shell。

、、、、、、、、、、、、、
sh或是執行腳本,或是切換到sh這個bash裏,默認的shell是bash,你可以試試tcsh啊,csh啊,ksh,zsh什麼的,看看別的shell是什麼樣子的。當然,linux中sh是鏈接到bash上的,所以sh與bash在功能上是沒有區別的。
還有就是在執行腳本的時候是用sh + 腳本名的方式來執行,其實,大部分的時候,簡單腳本只要權限設置正確,可以直接執行,不需要sh命令的。

2 $、$()、${}的區別

2.1$

$ 在linux裏是用來指明變量,例如$JAVA_HOME,是指JAVA_HOME的環境變量。
echo JAVAHOMElinuxjdkhomezhiShellJAVA_HOME 可以在linux終端輸出jdk的home目錄zhi。 在Shell 腳本中向腳本傳遞參數也會用到,例如腳本內獲取參數的格式爲:$n,n 代表一個數字,1 爲執行腳本的第一個參數,2 爲執行腳本的第二個參數,以此類推。

2.2 $()

小括號裏面是linux命令
比如
cat (pwd)>aaacatpwd>aaapwd(pwd)>aaa 等價於 cat `pwd`>aaa 其實是要執行裏面的pwd然後用輸出代替()內容。

2.3 ${}

大括號裏面則是數組變量
舉個例子
$A = (hello linux shell)
$echo ${A[0]}
則會輸出hello

3 $組合命令

$$
Shell本身的PID(ProcessID,即腳本運行的當前進程ID號)
$!
Shell最後運行的後臺Process的PID(後臺運行的最後一個進程的進程ID號)
$?
最後運行的命令的結束代碼(返回值)即執行上一個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤)
$-
顯示shell使用的當前選項,與set命令功能相同
"* 所有參數列表。如"*“用「”」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數,此選項參數可超過9個。
@"@ 所有參數列表。如"@“用「”」括起來的情況、以"$1" “2""2" … "n” 的形式輸出所有參數。
@@ 跟*類似,但是可以當作數組用
$#
添加到Shell的參數個數
$0
Shell本身的文件名
11~n
添加到Shell的各參數值。$1是第1參數、$2是第2參數…。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章