shell腳本(shell script),是一種為shell編寫的腳本程序.
Shell編程只需要有一個文本編輯器和一個能夠解釋執行的解釋器即可.
我現在學習的是Bourne Agine Shell,即Bash,也是大多數Linux默認的shell.
一般情況下人們不區分Bourne Shell和Bourne Agine Shell,像#!/bin/sh 和 #!/bin/bash.
一:第一個shell腳本
像學習大多數編程一樣,從Hello World開始
打開vi編輯器,新建一個test.sh,擴展名可以自己定,主要方便記憶,輸入下面代碼
#!/bin/sh
echo "Hello World"
其中#!是一種約定標記,它告訴系統后面跟的路徑指向的程序,即解釋此腳本的解釋器
執行shell腳本:
執行shell腳本,需要用戶有執行的權限,所以要先更給下權限
方法一: ./test.sh 其中./不能省去不能直接寫test.sh
方法二: /bin/sh test.sh 這種方式執行可以在編寫test.sh時不寫#!/bin.sh
執行結果會輸出 Hello world
二: shell變量
shell變量的定義,如 my_name="cat_crazy"
注意:1)定義變量的時候=號兩側不能有空格
2)變量名必須要以字母開頭,大寫或小寫
3)中間不能有空格,可以有下划線
4)不能使用標點符號
5)不能使用Bash保存的關鍵字
使用變量: 在變量名前加$即可
my_name="cat_crzay"
echo $my_name
echo ${my_name}
其中{}是可選的,只是為了使程序更好的識別變量的邊界
變量的賦值是不能加$符號,只有使用的時候才能加$,即$my_name="cat"這樣做會報錯
只讀變量 :這個變量一旦聲明為只讀變量,那么就不能再此賦值
例如 my_name="cat_crazy"
readonly my_name
my_name="cat"
這樣做程序會報錯,this variable is read only
刪除變量 : 使用unset后跟變量名刪除, 例如unset my_name
shell字符串
定義一個字符串可以使用單引號也可使用雙引號還可以不寫,單雙引號區別和php類似.
雙引號的優點:1)雙引號里可以有變量;2)雙引號中可以使用轉義字符
shell數組(只支持一維數組)
定義一個數組
1) array_name=(1 2 3 4 ) 數組的值之間使用空格隔開
2) array_name[0]=1
array_name[1]=2
注:下標可以不連續,但是必須要有,(最好使用整數作為下標,否則情況不知道怎么解釋)
shell注釋
shell注釋就是在行首加#,shell沒有多行注釋