shell迴圈,判斷介紹,以及例項

2021-09-08 14:01:00 字數 2525 閱讀 4846

shell的迴圈主要有3種,for,while,until

shell的分支判斷主要有2種,if,case

一,for迴圈

#!/bin/bash  

forfile

in $(ls /tmp/test/mytest |grep

sh) //

for in格式是shell for的基本格式,根js的for in類似

do//

迴圈開始你就把它當成

for ((i=0;i<10;i++)) //

注意是雙小括號,由於受其他語言的影響,很容易搞錯

doecho -n $i

done

echo \ //

輸出換行

for i in01

2345

6789

doecho -n $i

done

echo

\

for i in

"0 1 2 3 4 5 6 7 8 9"//

這個根上面是有區別的,這個迴圈只迴圈了一次,雙引號裡面只是乙個變數

doecho -n $i

done

exit

0

二,while迴圈

#!/bin/bash

i=0while ((i<10

))

doecho

$i

((i += 1

))

done

i=0while [ $i -lt 10 ] //

注意括號內側二邊的空格

doecho

$i

let

"i+=1"//

加1

done

exit

0

三,until迴圈

#!/bin/bash

end_condition=end

until [ "

$var1

" = "

$end_condition

" ] //

讀取的變數根設定的變數相等時退出迴圈,不然永遠迴圈

doecho

"input variable #1

"echo

"($end_condition to exit)

"read var1

echo

"variable #1 = $var1

"echo

done

exit

0

四,if語句

#!/bin/bash

echo

"input a number #1

"read num

echo

"variable #1 = $num

"if [ $num -lt 60 ] //

注意lt前面的-,很容易忘的

then

echo

"you are not pass

"elif [ $num -lt 70 ] && [ $num -ge 60 ] //

多個條件的判斷

then

echo

"pass

"elif [[ $num -lt 85 && $num -ge 70 ]] //

如果放在一起,要注意是雙方括號,不要寫成[ $num -lt 85 && $num -ge 70 ]

then

echo

"good

"elif (( $num <= 100 )) && (( $num >= 85 )) //

對於有語言基礎的人來說,這種寫法讓人覺得很舒服,不要忘了是雙小括號

then

echo

"very good

"else

echo

"num is wrong"fi

//if要有結束標籤的,根xml很像,不閉合,就報錯

exit

0

五,case語句

檢視複製列印?#!/bin/sh

case $1

instart)

echo

"start ok

";;

//注意一點,要注意是雙分號

stop)

echo

"stop ok

";;

restart)

echo

"restart ok

";;

*)

echo

"no param

";;

esac

//注意閉合標籤

exit 0

[root@krlcgcms01 forif]# sh c1.sh stop  

stop  ok  

shell 死迴圈if判斷 shell 死迴圈

例1 執行指令碼後會自動載入firefox瀏覽器,並開啟指定網頁。如果使用者關閉firefox,指令碼會再次自動重新開啟firefox。如需結束迴圈,中止t2.sh程序即可。注意不要同時執行兩個t1.sh指令碼,否則 若事先不知道指令碼名,也可以通過類似於 pstree grep firefox 的...

必須了解的Shell迴圈語句介紹與例項

2 while語句的結構 3 until語句的結構 for 變數名 in 取值列表 do 命令序列 done 使用for迴圈語句時,需要指定乙個變數及可能的取值列表,針對每個不同的取值重複執行相同的命令列,直到 變數值用完退出迴圈。取值列表 稱為for 語句的執行條件,其中包括多個屬性相同的物件,需...

shell(顯示 條件判斷 迴圈)

目錄 shell 顯示 echo printf 條件判斷 if case 迴圈 forwhile bin bash 顯示轉義字元 echo it s a test 顯示變數 read 從標準輸入中讀取一行,相當於scanf read name echo name is name 顯示換行 echo ...