if語句
if語句與其他語言中的類似玛迄,不過不需要大括號婚苹,在表達(dá)式后面需要添加個關(guān)鍵字then
a=10
b=20
if [ $a == $b ]
then
echo "a is equal to b"
elif [ $a -gt $b ]
then
echo "a is greater than b"
elif [ $a -lt $b ]
then
echo "a is less than b"
else
echo "I am just a soso"
fi
num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
then
echo 'The two numbers are equal!'
else
echo 'The two numbers are not equal!'
fi
Shell中的 test 命令用于檢查某個條件是否成立中符,它可以進(jìn)行數(shù)值配阵、字符和文件三個方面的測試,之前的這三個運算符都可以
case...esac語句
case...esac語句冗澈,與其他語言中的switch...case語句類似钦勘,是一種多分支選擇結(jié)構(gòu)
case工作方式如下所示。取值后面必須為關(guān)鍵字 in亚亲,每一模式必須以右括號結(jié)束彻采。取值可以為變量或常數(shù)。匹配發(fā)現(xiàn)取值符合某一模式后捌归,其間所有命令開始執(zhí)行直至 ;;肛响。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最后惜索。
取值將檢測匹配的每一個模式特笋。一旦模式匹配,則執(zhí)行完匹配模式相應(yīng)命令后不再繼續(xù)其他模式巾兆。如果無一匹配模式猎物,使用星號 * 捕獲該值,再執(zhí)行后面的命令角塑。
echo 'Input a number between 1 to 4'
echo 'your number is:\c'
read aNum
case $aNum in
1)
echo 'you select 1'
;;
2)
echo 'you select 2'
;;
3)
echo 'you select 3'
;;
4)
echo 'you select 4'
;;
*)
echo 'you do no select a number between 1 to 4'
;;
esac
for循環(huán)
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
for str in 'This is a string'
do
echo $str
done
for FILE in $HOME/.bash*
do
echo $FILE
done
while循環(huán)
i=10
while [ $i -ne 0 ]
do
i=`expr $i - 1`
echo $i
done
while循環(huán)可用于讀取鍵盤信息蔫磨。下面的例子中,輸入信息被設(shè)置為變量FILM圃伶,按<Ctrl-D>結(jié)束循環(huán)堤如。
echo 'type <CTRL-D> to terminate'
echo -n 'enter your most liked film:'
while read FILM
do
echo "yeah!great film the $FILM"
done
until循環(huán)
a=0
until [ ! $a -lt 15 ]
do
echo $a
a=`expr $a + 1`
done
在shell中可以使用break和continue來跳出循環(huán)蒲列,與其他語言中用法類似,不同的一點是煤惩,break后面可以跟個數(shù)字嫉嘀,表示跳出第幾層循環(huán)。