(1)腳本第一行以 #!/bin/sh 開始,也能夠用 #!/bin/bash 開始,可是第一行必須以這種方式開始.html
(2)腳本名須要以.sh結尾shell
(3)#開頭的句子表示註釋數組
(4)若要執行腳本文件,需給腳本賦權限,chmod 755 filenmebash
(5)腳本執行./filename函數
運行shell時,會同時存在三種變量:
1) 局部變量
局部變量在腳本或命令中定義,僅在當前shell實例中有效,其餘shell啓動的程序不能訪問局部變量。
2) 環境變量
全部的程序,包括shell啓動的程序,都能訪問環境變量,有些程序須要環境變量來保證其正常運行。必要的時候shell腳本也能夠定義環境變量。
3) shell變量
shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行工具
定義變量: m=100 使用變量: echo $m echo ${m}
注:oop
1,變量名和等號之間不能有空格;測試
2,首個字符必須爲字母(a-z,A-Z)。spa
3, 中間不能有空格,可使用下劃線(_)。3d
4, 不能使用標點符號。
5, 不能使用bash裏的關鍵字(可用help命令查看保留關鍵字)。
6,對於變量的{} 是能夠選擇的, 它的目的爲幫助解釋器識別變量的邊界.
7,$* 和 $@ 的區別爲: $* 和 $@ 都表示傳遞給函數或腳本的全部參數,不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出全部參數。可是當它們被雙引號(" ")包含時,"$*" 會將全部的參數做爲一個總體,以"$1 $2 … $n"的形式輸出全部參數;"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出全部參數。
8,$? 能夠獲取上一個命令的退出狀態。所謂退出狀態,就是上一個命令執行後的返回結果。退出狀態是一個數字,通常狀況下,大部分命令執行成功會返回 0,失敗返回 1。
在echo中能夠用於的轉義符有:
能夠根據變量的狀態(是否爲空、是否認義等)來改變它的值.
原生bash不支持簡單的數學運算,可是能夠經過其餘命令來實現,例如 awk 和 expr. 下面使用expr進行; expr是一款表達式計算工具,使用它能夠完成表達式的求值操做;
只支持數字,不支持字符串,除非字符串的值是數字。常見的有:
檢測 Unix 文件的各類屬性。
bash支持一維數組, 不支持多維數組, 它的下標從0開始編號. 用下標[n] 獲取數組元素;
在shell中用括號表示數組,元素用空格分開。 如:
array_name=(value0 value1 value2 value3)
也能夠單獨定義數組的各個份量,能夠不使用連續的下標,並且下標的範圍沒有限制。如:
array_name[0]=value0 array_name[1]=value1 array_name[2]=value2
讀取某個下標的元素通常格式爲:
${array_name[index]}
讀取數組的所有元素,用@或*
${array_name[*]} ${array_name[@]}
取得數組元素的個數:
length=${#array_name[@]} #或 length=${#array_name[*]}
獲取數組的下標:
length=${!array_name[@]} #或 length=${!array_name[*]}
取得數組單個元素的長度:
lengthn=${#array_name[n]}
包括: 1, if if [ 表達式 ] then 語句 fi 2. if else if [ 表達式 ] then 語句 else 語句 fi 3. if else if if [ 表達式] then 語句 elif [ 表達式 ] then 語句 elif [ 表達式 ] then 語句 fi
例:
包括: 1, if a=5 if [ $a -lt 10 ] then echo $a fi 2. if else m=5 if [$m -lt 3 ] then echo $m+1 else echo $m fi 3. if else if if [ $1 -lt 3 ] then val=`expr $1 + 1` echo $val elif [ $1 -gt 6 ] then val=`expr $1 - 1` echo $val else echo $1 fi
注:expr先後爲反引號··,運算符+、-先後須要空格
格式:
for 變量 in 列表 do command1 command2 ... commandN done
注:列表是一組值(數字、字符串等)組成的序列,每一個值經過空格分隔。每循環一次,就將列表中的下一個值賦給變量。
例:
for loop in 1 2 3 4 5 do echo "The value is: $loop" done
格式:
while command do Statement(s) to be executed if command is true done
例:
int=1 m=8 while(( $int<=5 )) do m=9 echo $int echo $m let "int++" done
轉自博客園1,