shell常用控制語句詳解

2021-09-23 06:21:26 字數 3022 閱讀 7110

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後面跟符號條件之後執行的程式,可以放在之後,用 分割,也可以換行寫...