if 語句通過關係運算子判斷表示式的真假來決定執行哪個分支;shell有三種if語句樣式,如下:
語句1if[ expression ]
then
statement(s) to be executed
if expression is true
fi語句2
if
[ expression ]
then
statement(s) to be executed
if expression is true
else
statement(s) to be executed
if expression is not true
fi語句3
if [ expression 1
]then
statement(s) to be executed
if expression 1 is true
elif [ expression 2
]then
statement(s) to be executed
if expression 2 is true
elif [ expression 3
]then
statement(s) to be executed
if expression 3 is true
else
statement(s) to be executed
if no expression is true
fi
說明判斷表示式可以參考文件:
單中括號與雙中括號的區別請參考:
for迴圈是一種有限迭代迴圈,一般格式如下:
for 變數 in列表do
command1
command2
...commandn
done
列表是一組值(數字、字串等)組成的序列,每個值通過空格分隔。每迴圈一次,就將列表中的下乙個值賦給變數。in 列表是可選的,如果不用它,for 迴圈使用命令列的位置引數。
示例
for loop in12345do
echo
"the value is: $loop
"done
while 迴圈用於不斷執行一系列命令,也用於從輸入檔案中讀取資料;命令通常為測試條件。其格式為:
whilecommand
dostatement(s) to be executed
if command is true
done
命令執行完畢,控制返回迴圈頂部,從頭開始直至測試條件為假。
示例
echo'type to terminate
'echo -n '
enter your most liked film:
'while
read film
doecho
"yeah! great film the $film
"done
until 迴圈執行一系列命令直至條件為 true 時停止。until 迴圈與 while 迴圈在處理方式上剛好相反。一般 while 迴圈優於 until 迴圈,但在某些時候,也只是極少數情況下,until 迴圈更加有用。格式如下:
untilcommand
dostatement(s) to be executed
until command is true
done
command 一般為條件表示式,如果返回值為 false,則繼續執行迴圈體內的語句,否則跳出迴圈。
示例
#!/bin/basha=0until [ ! $a -lt 10]do
echo
$a a=`expr $a + 1
`done
case ... esac 與其他語言中的 switch ... case 語句類似,是一種多分枝選擇結構。case 語句匹配乙個值或乙個模式,如果匹配成功,執行相匹配的命令。case 語句格式如下:
case 值 in模式1)
command1
command2
command3
;;模式2)
command1
command2
command3
;;*) command1
command2
command3
;;esac
case 工作方式如上所示。取值後面必須為關鍵字 in,每一模式必須以右括號結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最後。
示例
#!/bin/bashoption="$"
case $ in
-f) file="$"
echo
"file name is $file";;
-d) dir="$"
echo
"dir name is $dir";;
*) echo
"`basename $`:usage: [-f file] | [-d directory]
"exit
1 # command to come out of the program with status 1
;;esac
select 迴圈主要用於建立選單,按數字順序排列的選單項將顯示在標準錯誤上,並顯示ps3 提示符,等待使用者輸入;使用者輸入選單列表中的某個數字,執行相應的命令;使用者輸入被儲存在內建變數reply 中。select 是個無限迴圈,因此要記住用break 命令退出迴圈,或用exit 命令終止指令碼。也可以按ctrl+c 退出迴圈。格式如下:
select variable inlist
do迴圈體命令
done
示例
select 經常和case 聯合使用,與for 迴圈類似,可以省略in list ,此時使用位置參量;
#!/bin/bashselect choice in 1yuan 2yuan 5yuan quit ;do
case $choice in
1yuan)
echo
"you can buy a glass of water
";;
2yuan)
echo
"you can buy an ice cream
";;
5yuan)
echo
"you can buy a chicken leg
"echo
"choice $reply
";;
quit)
echo
"bye
"break
;;
*)
echo
"enter error!
"exit
2esac
done
Shell指令碼常用語句
指令碼測試 window 回車是 r n linux 回車是 n yum install y dos2unix 軟體 命令 dos2unix 指令碼名 處理 sh x 與 set x 開始 set x 結束 顯示指令碼執行過程 一.變數 1.區域性變數 只在乙個範圍內使用 普通變數 file ls ...
shell學習 常用語句
為什麼使用shell 可以快速 簡單的完成程式設計,實現自己的想法。shell非常適合編寫小的工具,因為小工具更強調的是易於配置 維護 移植等,而不是執行效率。當自己的想法確實有必要進行優化,有必要讓它更容易修改以及修正設計目的時,可以將shell編寫的工具重新用c c python等語言重新實現。...
mysql常用語句 MySQL常用語句
create table student id int primary key auto increment comment 學號 name varchar 200 comment 姓名 age int comment 年齡 comment 學生資訊 修改表注釋 alter table studen...