所有的程式語言中都有控制結構,shell程式設計也不例外。其中if結構是最常用的分支控制結構。
linux shell程式設計中常用的if語句有:if.....then...fi,if....then....else....fi,if....then...elif......
if....then.....else...語句非常簡單,語法如下:
if 表示式
then 命令表
[else 命令表]
fi其中表示式是判斷條件,命令表是條件成立時執行的shell命令,fi代表整個if語句的結束,必須得有。
下面看乙個例子:
#!/bin/bash
#filename:if.sh
#author:gyb
read num
if [ $num -lt 10 ];then
echo "$num<10"
else
echo "$num>10"
fi
增加可執行許可權
root@ubuntu:~# chmod +x if.sh
執行root@ubuntu:~# ./if.sh
22<10
root@ubuntu:~# ./if.sh
2424>10
**中[ $num -lt 10 ] 是test命令的另一種寫法,需要注意的是『[『』之後和『]』之前必須有乙個空格。
if....then....elif.....是乙個多分支結構,如果程式需要的話elif可以無限制的寫下去(其中elif代表else if的縮寫)。
例子:
#!/bin/sh
#filename:elif.sh
#author:gyb
echo "input score:"
read score
if [ $score -ge 0 -a $score -lt 60 ];then
echo "e"
elif [ $score -ge 60 -a $score -lt 70 ];then
echo "d"
elif [ $score -ge 70 -a $score -lt 80 ];then
echo "c"
elif [ $score -ge 80 -a $score -lt 90 ];then
echo "b"
elif [ $score -ge 90 -a $score -le 100 ];then
echo "a"
else
echo "input error"
fi
**中判斷條件中 -a代表邏輯與,只有當-a前後兩個條件同時成立時,整個表示式才為真。
新增可執行許可權:
root@ubuntu:~# chmod +x elif.sh
執行root@ubuntu:~# ./elif.sh
input score:34e
root@ubuntu:~# ./elif.sh
input score:67d
root@ubuntu:~# ./elif.sh
input score:78c
root@ubuntu:~# ./elif.sh
input score:89b
root@ubuntu:~# ./elif.sh
input score:99a
if語句是可以巢狀的,並且可以多重巢狀
例子:
#!/bin/bash
#filename:ifnest.sh
#author:gyb
read num
if [ $num -lt 100 ];then
echo "$num<100"
if [ $num -lt 50 ];then
echo "$num<50"
if [ $num -lt 30 ];then
echo "$num<30"
fifi
fi
新增可執行許可權
root@ubuntu:~# chmod +x ifnest.sh
執行root@ubuntu:~# ./ifnest.sh
2323<100
23<50
23<30
root@ubuntu:~# ./ifnest.sh
4545<100
45<50
end.
shell程式設計之迴圈結構
與c語言類似,shell指令碼語言同樣有迴圈語句 1.for語句 2.while語句。下面講解一下這兩個迴圈結構的表達並舉例說明。1.for語句 基本語法 for var in 單次表 do命令列 done 同樣也有一種和c語言相類似的形式 for i 0 i 10 i do命令列 done 例子 ...
shell程式設計之chown
語法 chown option owner group file chown option reference rfile file 描述 chown 改變指定檔案的使用者和 或組的擁有者。例如 liujl liujl rev 1 0 mycode test ls l 總用量 0 rw rw r 1...
shell 程式設計之echo
echo it is a test echo itis a testecho it is a test read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數 bin sh read name echo name it is a test 以上 儲存為 test.sh,...