if語句 文法1
if 條件then 命令(集合)fi
這裡的條件就是使用test語句或者中括弧語句(前一篇文章已經總結)
注意if語句必須以fi終止
練習:
#if testif [ "13" -lt "12" ] # "13" 前一個空格,“13”後也有一個空格。then echo "yes 13 is less then 12"else echo "NO"fi
文法2
if 條件1then 命令1elif 條件2then 命令2else 命令3fi
#!/bin/bash#if test#this is a comment lineecho "Enter your filename:"read myfileif [ -e $myfile ]then if [ -s $myfile ];then echo "$myfile exist and size greater than zero" else echo "$myfile exist but size is zero" fielse echo "file no exist"fi
case多選擇語句
case多選擇語句格式:
case 變數/運算式 in模式1) 命令1 ;;模式2) 命令2 ;;esac
case取值後面必須為單詞in; 每一模式必須以右括弧結束。 取值可以為變數或常數。 匹配發現取值符合某一模式後,其後的所有命令開始執行,直到;; 模式比對*表示任一字元; ?表示任意單字元; [..](注意:只有兩個點)表示類或範圍中任一字元
#!/bin/bash#case selectecho -n "enter a number from 1 to 3:"read numcase $num in1) echo "you select 1" ;;2) echo "you select 2" ;;3) echo "you select 3" ;;y|Y) echo “you select y” ;;*) echo "`basename $0`:this is not between 1 and 3">&2 exit; ;;esac
所有的模式具有優先順序,按照出現的順序優先匹配 模式可以寫成運算式表示一個範圍如y|Y 不能像C語言switch-case一樣,將執行相同操作的多個模式寫在一起,如果多個模式執行同一個操作,用|把他們組合起來,表示其中一個被匹配上執行相應的分支操作。