1. 程式人生 > >shell有流程控制語句

shell有流程控制語句

linux shell有一套自己的流程控制語句,其中包括條件語句(if),迴圈語句(for,while),選擇語句(case)。下面我將通過例子介紹下,各個語句使用方法。

一、shell條件語句(if用法)

if語句結構[if/then/elif/else/fi]

if 條件測試語句

then

action

[elif 條件

action

else

action

]

fi

shell命令,可以按照分號分割,也可以按照換行符分割。如果想一行寫入多個命令,可以通過“';”分割。

如:

[[email protected] ~]$ a=5;if [[ a -gt 4 ]] ;then echo 'ok';fi;                       
ok

例項:(test.sh)

#!/bin/sh

scores=40;
if [[ $scores -gt 90 ]]; then
    echo "very good!";
elif [[ $scores -gt 80 ]]; then
    echo "good!";
elif [[ $scores -gt 60 ]]; then
    echo "pass!";
else
    echo "no pass!";
fi;

image

條件測試有:[[]],[],test 這幾種,注意:[[]] 與變數之間用空格分開。

二、迴圈語句(for,while,until用法):

  • for迴圈使用方法(for/do/done)

語法結構:

 1.for … in 語句

for 變數 in seq字串

do

action

done

說明:seq字串 只要用空格字元分割,每次for…in 讀取時候,就會按順序將讀到值,給前面的變數。

例項(testfor.sh):

#!/bin/sh

for i in $(seq 10); do
    echo $i;
done;

image

seq 10 產生 1 2 3 。。。。10空格分隔字串。

2.for((賦值;條件;運算語句))

for((賦值;條件;運算語句))

do

action

done;

例項(testfor2.sh):

#!/bin/sh

for((i=1;i<=10;i++));do
    echo $i;
done;

image

  • while迴圈使用(while/do/done)

while語句結構

while 條件語句

do

action

done;

例項1:

#!/bin/sh
i=10;
while [[ $i -gt 5 ]];do
    echo $i;
    ((i--));
done;

執行結果:========================

sh testwhile1.sh
10
9
8
7
6

例項2:(迴圈讀取檔案內容:)

#!/bin/sh

while read line;do
    echo $line;
done < /etc/hosts;

執行結果:===================

sh testwhile2.sh


# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 centos5 localhost.localdomain localhost

  • until迴圈語句

語法結構:

until 條件

do

action

done

意思是:直到滿足條件,就退出。否則執行action.

例項(testuntil.sh):

#!/bin/sh

a=10;

until [[ $a -lt 0 ]];do

echo $a;

((a—));

done;

結果:

sh testuntil.sh

10
9
8
7
6
5
4
3
2
1
0

三、shell選擇語句(case、select用法)

  • case選擇語句使用(case/esac)

語法結構

case $arg in 
    pattern | sample) # arg in pattern or sample 
    ;; 
    pattern1) # arg in pattern1 
    ;; 
    *) #default 
    ;; 
esac 

說明:pattern1 是正則表示式,可以用下面字元:

                 *       任意字串
                 ?       任意字元
                 [abc]   a, b, 或c三字元其中之一
                 [a-n]   從a到n的任一字元
                 |       多重選擇

例項:

#!/bin/sh 

case $1 in
start | begin)
    echo "start something" 
    ;;
stop | end)
    echo "stop something" 
    ;;
*)
    echo "Ignorant" 
    ;;
esac

執行結果:======================

testcase.sh start
start something

  • select語句使用方法(產生選單選擇)

語法:

select 變數name  in seq變數

do

    action

done

例項:

#!/bin/sh 

select ch in "begin" "end" "exit"
do
case $ch in
"begin")
    echo "start something" 
    ;;
"end")
    echo "stop something" 
    ;;
"exit")
    echo "exit" 
    break;
    ;;
*)
    echo "Ignorant" 
    ;;
esac
done;

執行結果:

image

說明:select是迴圈選擇,一般與case語句使用。

以上是shell的流程控制語句,條件,迴圈,選擇。 歡迎討論交流!


相關推薦

shell流程控制語句

linux shell有一套自己的流程控制語句,其中包括條件語句(if),迴圈語句(for,while),選擇語句(case)。下面我將通過例子介紹下,各個語句使用方法。 一、shell條件語句(if用法) if語句結構[if/then/elif/else/fi]

Linux之shell流程控制語句

一、if-else分支結構 if語法格式: if 條件 then 邏輯塊(通常都是些命令) fi 寫成一行:適用於終端寫法 If 條件; then 邏輯 ; fi   If else語法格式: if 條件 then 邏輯塊(通常都是些命令)

shell 流程控制語句

pan oot 示例 strong 更多 -o 一個 post 文件 一、if 語法格式:if test -d $arg then ... else ... fi 變量測試語句可以用 [ ] 簡化。例:test -d $arg 等價於 [ -d $arg ]。( 註意:"空

1 Linux shell 編程(七):流程控制語句

shell if else Linux 流程控制語句 在shell中如果在終端輸入多個命令,如果以&分隔則將命令放入後臺執行,如果以;分隔,則表示一個命令集合。shell允許使用邏輯操作符&&和||來作為命令分隔符,他們分別時AND和OR. && 如果前

shell腳本(二)--if流程控制語句和for循環語句的使用

系統/運維 Linux shell if語句 for循環語句 理論部分:1、在簡單的腳本中各條語句按順序執行,從而實現自動化的管理,順序單一執行太過機械化,不夠“智能”,難以實現更加靈活的系統任務。例如:批量安裝軟件包100臺機器 50臺已安裝 50臺未安裝2、shell環境根據$?來判斷

shell流程控制語句 case

不常用 多個 流程 shell流程控制 ase 讀取 ext ffffff 提示符 linux的shell前前後後學了好幾遍了奈何記性不好,總是忘了,追主要的原因可能是不常用的原因吧!case開頭 esac結尾下面是結果輸入法不對 輸入的符號就不對,剛開始總錯,後來切換了

shell指令碼:流程控制語句

if/else 命令連線符: 單個分支if條件語句 if[ 條件判斷 ] then <程式> fi 或者 if[ 條件判斷 ]; then <程式> fi 多分支 if[ 條件判斷 ]; then <程式> el

Shell基礎知識4:流程控制語句

1 if 條件測試語句 if條件測試語句可以讓指令碼根據實際情況自動執行相應的命令。 1.1 if語句分類 1、單分支結構。 2、雙分支結構。 3、多分支結構。 1.2 單分支結構 if 條件語句的單分支結構由 if、then、fi 關鍵片語成。 如果

linux Vim編輯器、shell指令碼、流程控制語句和計劃任務

本章主要講解shell指令碼,vim編輯器 1. 強制儲存退出 wq! 2. 查詢主機名稱 hostname 3. 在vim中常用的命令 dd刪除游標所在行;5dd刪除自游標所在行開始往下數五行;yy複製游標所在行;5yy複製自游標所在行開始往下數5行內容;n顯示搜尋命令定位到下一個字串

學習筆記 shell流程控制語句 if 和 for

if條件測試語句 使用單分支的if條件語句來判斷/media/cdrom檔案是否存在,若存在就結束條件判斷和整個Shell指令碼,反之則去建立這個目錄: [[email protected] ~]# vim 1.sh #!/bin/bash DIR="

Shell流程控制語句

在Linux Shell程式設計中,if、for、while、case等條件流程控制語句用的非常多,把這些學好,對提升指令碼的功力有非常大的幫助。下面將逐個來講解具體的用法: If條件判斷語句 I

shell--條件測試語句流程控制語句的使用

1. test 判斷   test $num1 == $num2    #判斷是否相等   echo $?   test $num != $num2   test $str                              #判斷字串是否非空,非空結果為0   te

linux中的shell script 的流程控制語句

一 :條件判斷: if [ 判斷條件 ];then    當條件成立時執行的語句,其實跟程式語言裡的差不多! fi 或者多重條件判斷 if [ 判斷條件1 ];then 滿足1,則執行這裡的指令 elif [ 判斷條件2 ];then . . . . else   當上面所

Oracle流程控制語句

控制 space reverse logs 2.3 1.2 流程控制語句 case ora 1.選擇語句 1.1 IF...THEN...END IF語句 DECLARE MY_AGE INT; IF MY_AGE IS NULL THEN DBMS

java基礎:流程控制語句(選擇結構if語句)

這樣的 執行 錯誤數據 一點 選擇 邏輯運算符 月份 等級 pri (1)順序結構 從上往下,依次執行 Demo:class ShunXuJieGouDemo { public static void main(String[] args) { System.o

流程控制語句

基礎 num cor 支持 流程 編寫 ons 執行 結果 一、條件語句 條件語句就是指通過判斷得到的結果,來決定是執行還是跳過指定的代碼塊。 1、if 語句 if 語句是條件判斷語句,也是最基本的流程控制語句。 例如: var num = 5;if(num < 10

js流程控制語句

var if else script 流程控制 寫法 break def 嵌套 default 條件語句 條件語句通過判斷得到的結果,來決定是執?還是跳過指定的代碼塊 JavaScript 提供了兩種條件語句: if else switch case if 語句 代碼實現

pl/sql流程控制語句if else條件選擇語句

結構 選擇 表達 滿足 if條件 條件語句 lin output 選擇語句 if條件語句。 if條件語句的基本結構 IF <布爾表達式> THEN PL/SQL 和 SQL語句 END IF; 或 IF <布爾表達式> THEN PL/SQL 和 S

Shell 腳本控制語句

cond ase div 控制語句 pattern att mman class clas 1、if 語句  if condition1;then command1 elif condition2;then command2 else comman

特殊流程特殊流程控制語句控制語句

tar .com -s 別名 goto 宋體 跳出循環 需要 程序 Break 常用於switch和循環裏面,如果是用在switch裏面,代表跳出當前的case,如果是用在循環裏面,代表跳出循環。 但是。PHP裏面的break比C語言,JS的break還要強大 PH