shell分為兩大類:
bourne shell (包括 sh, ksh, bash):bourne shell ( sh),korn shell ( ksh),bourne again shell ( bash),posix shell ( sh)。
c shell (包括 csh and tcsh):c shell ( csh),tenex/tops c shell ( tcsh)。
shell除錯:常用echo列印變數值;真實的除錯模式-sh -x shellscript.sh,執行指令碼並列印所有變數的值;只檢查語法的除錯模式-sh -n script.sh,返回語法錯誤。
流程控制語法如下:
#if語句
if...;then
...elif..;then
...else
...fi
#case語句
case...in
..) something;;
esac
#select語句,與使用者進行互動
select var in...;do
......$var can be used...
done
...$var can be used...
#while迴圈
while [ 條件1 ]
do...
done
#until
until [ 條件 ]
dodone
#for迴圈
for (( 條件1; 條件2; 條件3 ))
dodone
for var in...
do...
done
注意的是:select是bash的乙個擴充套件應用,所以頭語句應該為「#!/bin/bash」,否則select無法使用。select的效果是列出變數,等待使用者選擇。
補:與使用者進行互動,除了select,還有read命令,用法「read var」,獲得使用者的輸入並賦值給變數var。
if/while中的條件判斷通常使用「」來進行條件測試。
[ -f "xx" ]:判斷是否為乙個檔案
[ -x "xx" ]:判斷是否可執行
[ -n "$var"]:判斷var是否有值
[ "$a"="$b"]:判斷變數a和b是否相等
其他有對檔案的測試還有:
-d目錄
-s檔案非空
-f
正規檔案
-w
可寫
-l
符號鏈結
-u
檔案有suid
設定
-r
可讀
-x
可執行
對字串的測試還有:
!=
兩個字串不相同
-z
空串對數值的測試有:
-eq
數值相等
(=)
-ne
數值不相等
(!=)
-gt
前者大於後者
(>)
-lt
前者小於後者
(<)
-le
前者小於等於後者
(≤)-ge
前者大於等於後者
(≥)
Shell流程控制語句
在linux shell程式設計中,if for while case等條件流程控制語句用的非常多,把這些學好,對提公升指令碼的功力有非常大的幫助。下面將逐個來講解具體的用法 if 表示式 if variable in array 語句1else 語句2fi 案例一,測試數字大小 bin sh nu...
shell流程控制語句
任何程式語言都離不開流程控制語句,其實程式設計基本上就是掌握了流程控制語句,然後加上函式 或者是方法 以及變數基本就差不多了,語法的東西很少,主要還是處理邏輯。所以,邏輯思維很重要。對於計算機來說,它只知道有或者沒有,是正或者是負,有電或者沒電,其實就是1和0的事兒。因此,if語句很重要,但又很簡單...
Shell基礎 流程控制語句
0 表示當前指令碼檔案的名稱 獲取當前指令碼有多少個引數 對應所有引數的值 n 對應第n個引數的值 表示當前指令碼執行結果 0表示成功,非0表示失敗 有兩種方式 a.test 命令 b.w test.sh 引數 檔名 2.1 檔案測試 2.2 邏輯測試 與 或 非 2.3 整數值比較測試 2.4 字...