linux 學習——Shell入門(二)(讓你“根深蒂固”)

Linux C語言 教育 馬上碼 2017-04-05

linux 學習——Shell入門(二)(讓你“根深蒂固”)

一、 條件測試結構 if then else 語句

Shell Script中if語句的條件部分要以分號來分隔。[]表示條件測試,常用的條件測試有下面幾種:

linux 學習——Shell入門(二)(讓你“根深蒂固”)

[ -f "$file" ] 判斷$file是否是一個文件

[ $a -lt 3 ] 判斷$a的值是否小於3,同樣-gt和-le分別表示大於或小於等於

[ -x "$file" ] 判斷$file是否存在且有可執行權限,同樣-r測試文件可讀性

[ -n "$a" ] 判斷變量$a是否有值,測試空串用-z

[ "$a" = "$b" ] 判斷$a和$b的取值是否相等

[ cond1 -a cond2 ] 判斷cond1和cond2是否同時成立,-o表示cond1和cond2有一成立

[ -r ] 選項檢查文件是否可讀

! 表示取反

linux 學習——Shell入門(二)(讓你“根深蒂固”)

if 條件1 #如果條件1為真

then #那麼

command1 #執行命令1

elif 條件2 # 如果條件2為真 // {多級比較(應注意與嵌套條件分支區分)}

then #那麼

command2 # 執行命令2

else #如果條件1和條件2都不成立

command3 執行命令3

fi #完成(if 語句一定要以fi結束)

舉例說明:

if [ "13" -lt "11"] #如果13小於11

then #那麼

echo "13<11" #輸出"13<11"

elif["13" -lt "12"] #如果13小於12

then # 那麼

echo "13<12" #輸出"13<12"

else #否則

echo "13>=12" #輸出"13>=12"

二、case語句:

在shell中的case結構與C/C++中的switch結構是相同的。它允許通過判斷來選擇代碼塊中多 條路徑中的一條。它的作用和多個if/then/else語句的作用相同,是它們的簡化結構,特別 適用於創建菜單。case塊以esac(case的反向拼寫)結尾。

case 值 in

模式1) #如果模式1匹配

命令1 #執行命令1   ;;

模式2) #如果模式2匹配

命令2 #執行命令2 ;

*) #如果以上模式都不匹配

命令3 #執行命令3 ;

esac #結束case語句

case取值後面必須為單詞in,每一模式必須以右括號結束。取值可以為變量或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至;;。模式匹配符號*表示匹配任意字符。[。。]表示類或者範圍中的任意字符。

linux 學習——Shell入門(二)(讓你“根深蒂固”)

舉例說明:

case $A in

1)  #如果A的值為1

echo "A =1" #輸出“A=1”  ;

2) #如果A的值為2

echo "A=2" #輸出“A=2”   ;

[34]) #如果A的值為3或4

echo "A=3|4" #輸出“A=3|4”  ;

esac #結束

相關推薦

推薦中...