#語法結構
#如果if條件判斷中有多條命令,則根據最後一條命令的執行結果進行評估
ifcommand;then
command
elif command;then
command
else
command
fi
#!/bin/bash
x=5if [ $x = 5 ];then
echo
"x equals 5"
else
echo
"x not equals 5"
fi
每個命令執行完成後,會向作業系統傳送乙個值,表示退出狀態,可以使用以下方法,檢視該值
#0表示執行成功,其他值表示失敗
echo $?
語法結構
(一)test expression
(二)[ expression ]
-d file 檔案存在,並且是乙個目錄檔案
-e file file檔案存在
-f file file問價存在,並是乙個普通檔案
-r file 問價存在,並且可讀
-w file 檔案存在,並且可寫
-x file 檔案存在,並且可執行
#!/bin/sh
file="/usr/study/test/test.t"
if [ -e
$file ];then
if [ -f
$file ] ;then
echo
"$file is a regular file"
fiif [ -d
$file ];then
echo
"$file if a directory"
fiif [ -r $file ];then
echo
"$file is a readable"
fiif [ -w $file ];then
echo
"$file is a writeable"
fiif [ -x $file ];then
echo
"$file is a executable"
fielse
echo
"$file does not exit"
exit1fi
exit
#exit命令接受單獨的可選引數,來作為指令碼的退出狀態
">"和"<"在使用是必須使用引號引起來,或者使用反斜槓進行轉義
"="和"=="在判斷字串相等是作用相同
-nstring 表示字串長度大於0
-zstring 表示字串長度等於0
#!/bin/bash
result=xul
if [ -z $result ];then
echo
"there is no answer"
exit1fi
if [ "$result" = "xul" ];then
echo
"result is xul"
fiif [ "$result" != "test" ];then
echo
"result is not test"
fiif [ "$result" \> "yyy" ];then
echo
"result > yyy"
fiif [ "$result" \< "yyy" ];then
echo
"result < yyy"
fi
-eq 連個整數相等
-ne 兩個整數不相等
-le 小於等於
-lt 小於
-ge 大於等於
-gt 大於
#!/bin/bash
i=4if [ -z "$i" ];then
echo
"i is empty"
exit1fi
if [ $i
-eq0 ];then
echo
"i is 0"
else
if [ $i -le 0 ];then
echo
"i <= 0"
fiif [ $i -ge 0 ];then
echo
"i >= 0"
fiif [ $i
-ne0 ];then
echo
"i != 0"
fiif [ $((i%2)) -eq
0 ];then
echo
"i is even"
fifi
exit
[[ espression ]]
1.增加了對正規表示式的支援
2.==操作符支援模式匹配
(())
算數測試,使用變數是不需要擴充套件操作,該表示式可以根據變數名直接查詢變數
#!/bin/bash
i=5if [[ "$i" =~ ^-?[0-9]+$ ]];then
if [ $i
-eq0 ];then
echo
"$i is 0"
else
if [ $i
-lt0 ];then
echo
"$i< 0"
else
echo
"$i > o"
fiif [ $((i%2)) == 0 ];then
echo
"$i is even"
else
echo
"$i is not even"
fifi
else
echo
"$i is not a integer"
fi
&& || !
#!/bin/bash
i=50
max=100
min=1
if [[ "$i" =~ ^-?[0-9]+$ ]];then
if [[ i -ge min && i -le max ]];then
echo
"$i is within $min to $max"
else
echo
"$i is out of range"
fielse
echo
"$i is not a integer"
fi
command1&&command2
//只有command1執行成功後才執行command2
command1||command2
//只有command1執行失敗後才執行command2
mkdir test && cd test
Shell指令碼程式設計 流控制(一)
在指令碼中有兩種強大的流控制機制可以使用 if語句 case語句 1 if語句 基本語法 if list1 then list2 elif list3 then list4 else list5 fi乙個例項 if uuencode koala.gif koala.gif koala.uu then...
shell指令碼中的控制流結構
控制結構包括 流控制和迴圈 流控制 if then else,測試結果或者為真 0 或者為假 1 迴圈 for until while 一 if then else 語句 格式 if 條件1 then命令1 elif條件2 then 命令2 else 命令3 fi 簡單的格式 if 條件 then ...
Shell程式設計 流控制
if語句 1 寫if語句時不要隨意加空格,比如if 1 2 這是假,而if 1 2 就是真了,因為1和 之間有空格。注意與1,2之間的空格是合法的,總結一下就是,shell中表示式中最好不要加空格,比如a 1,1 2,2 2等等,如果加上空格,往往會產生錯誤。2 使用test,格式 if test ...