shell程式設計中,if、for、while、case、select等條件流程控制語句用得非常多,熟練掌握以上流程控制語句及語法的實戰,對編寫指令碼時有很大的作用。下面就以這五種常用的語句來介紹學習。
在shell中,if語句通常以if開頭,fi結尾,可以加入else或者elif進行多條件的判斷,具體表示式為: if ( 表示式 )
語句1:
else
語句2:
fiif常見的判斷運算子
1.-f:判斷檔案是否存在
2.-d:判斷目錄是否存在
3.-eq:等於,應用於整型比較,等於equal
4.-ne:不等於,應用於整型比較
5.-lt:小於,應用於整型比較
6.-gt:大於,應用於整型比較
7.-le:小於或等於,應用於整型比較
8.-ge:大於或等於,應用於整型比較
9.-a:雙方都成立(and),用法為邏輯表示式-a邏輯表示式
10.-o:單方成立(or),用法為邏輯表示式-o邏輯表示式
11.-z:空字串
12.‖:單方成立
13.&&:雙方都成立表示式
if語句括號的使用
1.是用》 、< 、 <= 、>= 比較數值的大小的話用(( ))
2.單獨使用 -d -f -lt -gt -lt -ge -le -ne -f 用 或者 [[ ]]都可以
3.如果配合-a -o 使用要使用
if判斷括號的區別
1.():用於多個命令組、命令替換、初始化陣列
2.(()):整數擴充套件、運算子、重定義變數值,算術運算比較
3.:bash內部命令,「[」與test是等同的,正則字元範圍、引用陣列元素編號,不支援「+」、「-」、「∗」、「/」數**算符,邏輯測試使用-a、-o
4.:bash程式語言的關鍵字,不是乙個命令,結構比結構更加通用,不支援「+」、「-」、「∗」、「/」數**算符,邏輯測試使用&&、‖
5.{}:主要用於命令集合或者範圍
if語句shell指令碼例項學習:
例項一:比較整數的大小,**如下
例項二:if多個條件進行分數判斷輸出
此處定義的值score=$1,需要我們在執行時手動輸入值,這樣才會返回到相對應的值,如圖所示:
for迴圈語句主要用於對某個資料域進行迴圈讀取、對檔案進行遍歷,通常用於迴圈某個檔案或者列表。其語法格式以for…do開頭,done結尾。
語法為:for var in(表示式)
do語句1:
done
for語句例項學習:
例項一:迴圈列印1-100數字
seq表示我們要寫出的資料的範圍
例項二:利用for迴圈求和,如:1-100總和
while迴圈語句與for迴圈功能類似,主要用於對某個資料域進行迴圈讀取、對檔案進行遍歷,通常用於迴圈某個檔案或者列表,滿足迴圈條件會一直迴圈,不滿足則退出迴圈,其語法是以while…do開頭,done結尾。
語法格式為:while(表示式)
do語句:
done
while迴圈語句學習
例項一:迴圈列印檔案內容
此指令碼命令為迴圈列印出來while.txt資料夾下的內容,read指令是用於讀取行或者讀取變數。
例項二:while迴圈列印
case選擇語句主要用於對多個選擇條件進行匹配輸出,與if…elif語句結構類似,通常用於指令碼傳遞輸入引數,列印出輸出結果及內容,其語法格式以case…in開頭,esac結尾。
語法為:
case $1 in
pattern 1)
語句1:
;;pattern 2)
語句2:
;;esac
case語句例項學習
例項一:列印選擇選單
select語句一般用於選擇,常用於選擇選單的建立,可以配合ps3來做列印選單的輸出資訊,其語法格式以select…in do開頭,done結尾。
語法為:
select i in(表示式)
do語句
done
select語句例項學習
例項一:列印作業系統選擇
執行改指令碼會出現如下選項:
當然我們在編寫指令碼時也可多寫乙個選擇用來退出指令碼,下面會在例項二中演示退出指令碼。
例項二:列印lamp選擇選單
這個指令碼在選擇選項中,選擇4後會直接跳出指令碼,回到操作命令行。
shell控制語句
1 if 語句 命令格式 bin bash score 75 if score lt 60 then echo ccccccc elif score ge 60 score lt 80 then echo bbbbbbb else score ge 80 echo aaaaaa fi注意 1 if語...
shell中常用的控制語句(上)
root node1 mnt sh file.sh 正常執行12 345hello world root node1 mnt sh file.sh exit exit退出當前的迴圈,指令碼整體退出12 root node1 mnt sh file.sh break break只管當前的退出12 he...
shell 條件控制語句
if else命令 1 單分支if條件語句 if 條件判斷式 then 程式fi注意 1.if語句使用fi結尾,和一般語言使用大括號結尾不同。2.條件判斷式 就是使用test命令判斷,所以中括號和條件判斷式之間必須有空格 3.then後面跟符號條件之後執行的程式,可以放在之後,用 分割,也可以換行寫...