shell的控制流程語句

2021-05-26 08:20:44 字數 2200 閱讀 7732

shell分為兩大類:

bourne shell (包括 sh, ksh, bash):bourne shell ( sh),korn shell ( ksh),bourne again shell ( bash),posix shell ( sh)。

c shell (包括 csh and tcsh):c shell ( csh),tenex/tops c shell ( tcsh)。

shell除錯:常用echo列印變數值;真實的除錯模式-sh -x shellscript.sh,執行指令碼並列印所有變數的值;只檢查語法的除錯模式-sh -n script.sh,返回語法錯誤。

流程控制語法如下:

#if語句

if...;then

...elif..;then

...else

...fi

#case語句

case...in

..) something;;

esac

#select語句,與使用者進行互動

select var in...;do

......$var can be used...

done

...$var can be used...

#while迴圈

while [ 條件1 ]

do...

done

#until

until [ 條件 ]

dodone

#for迴圈

for (( 條件1; 條件2; 條件3 ))

dodone

for var in...

do...

done

注意的是:select是bash的乙個擴充套件應用,所以頭語句應該為「#!/bin/bash」,否則select無法使用。select的效果是列出變數,等待使用者選擇。

補:與使用者進行互動,除了select,還有read命令,用法「read var」,獲得使用者的輸入並賦值給變數var。

if/while中的條件判斷通常使用「」來進行條件測試

[ -f "xx" ]:判斷是否為乙個檔案

[ -x "xx" ]:判斷是否可執行

[ -n "$var"]:判斷var是否有值

[ "$a"="$b"]:判斷變數a和b是否相等

其他有對檔案的測試還有:

-d目錄

-s檔案非空

-f

正規檔案

-w

可寫

-l

符號鏈結

-u

檔案有suid

設定

-r

可讀

-x

可執行

對字串的測試還有: 

!=

兩個字串不相同

-z

空串對數值的測試有:

-eq

數值相等

(=)

-ne

數值不相等

(!=)

-gt

前者大於後者

(>)

-lt

前者小於後者

(<)

-le

前者小於等於後者

(≤)-ge

前者大於等於後者

(≥)

Shell流程控制語句

在linux shell程式設計中,if for while case等條件流程控制語句用的非常多,把這些學好,對提公升指令碼的功力有非常大的幫助。下面將逐個來講解具體的用法 if 表示式 if variable in array 語句1else 語句2fi 案例一,測試數字大小 bin sh nu...

shell流程控制語句

任何程式語言都離不開流程控制語句,其實程式設計基本上就是掌握了流程控制語句,然後加上函式 或者是方法 以及變數基本就差不多了,語法的東西很少,主要還是處理邏輯。所以,邏輯思維很重要。對於計算機來說,它只知道有或者沒有,是正或者是負,有電或者沒電,其實就是1和0的事兒。因此,if語句很重要,但又很簡單...

Shell基礎 流程控制語句

0 表示當前指令碼檔案的名稱 獲取當前指令碼有多少個引數 對應所有引數的值 n 對應第n個引數的值 表示當前指令碼執行結果 0表示成功,非0表示失敗 有兩種方式 a.test 命令 b.w test.sh 引數 檔名 2.1 檔案測試 2.2 邏輯測試 與 或 非 2.3 整數值比較測試 2.4 字...