Shell學(xué)習(xí)之路-(06-循環(huán)語(yǔ)句)

題圖:gratisography

循環(huán)語(yǔ)句

1.死循環(huán)

#!/bin/sh

while true
do
    echo "test_1"
    sleep 1
done

或?qū)hile true替換為while [ 1 ]也可以。

2.條件循環(huán)

例1:num每次加1并打印,執(zhí)行5次

2.1 使用for循環(huán)

#!/bin/sh

for num in 0 1 2 3 4
do
    echo "num = $num"
    sleep 1
done

結(jié)果:

linye@ly:~/test_scripts$ ./test_1.sh
num = 0
num = 1
num = 2
num = 3
num = 4

使用for循環(huán)再做個(gè)實(shí)驗(yàn),如下:

#!/bin/sh

for num in 0 5 2 6 4
do
    echo "num = $num"
    sleep 1
done

結(jié)果:

linye@ly:~/test_scripts$ ./test_2.sh
num = 0
num = 5
num = 2
num = 6
num = 4

知識(shí):

發(fā)現(xiàn)for . in語(yǔ)句,其實(shí)就是將in后面的數(shù)值帶進(jìn)去執(zhí)行,直到in后面的數(shù)值沒(méi)有了,則執(zhí)行完成,所以在特定的且個(gè)數(shù)比較少的條件循環(huán)時(shí)即可使用該方法。

2.2 使用while循環(huán)

#!/bin/sh

num=0

while [ $num -lt 5 ]
do
    echo "num = $num"
    num=`expr $num + 1`
    sleep 1
done

結(jié)果:

linye@ly:~/test_scripts$ ./test_1.sh
num = 0
num = 1
num = 2
num = 3
num = 4

知識(shí):

num++ 的實(shí)現(xiàn),在C語(yǔ)言里面的num++直接即可,但shell這邊的表達(dá)有些不一樣,有很多形式,如下:

num=`expr $num + 1`
let num=num+1
((num=num+1))
num=$(( $num + 1 ))

2.3 使用until循環(huán)

#!/bin/sh

num=0

until [ ! $num -lt 5 ]
do
    echo "num = $num"
    num=`expr $num + 1`
    sleep 1
done

結(jié)果:

linye@ly:~/test_scripts$ ./test_1.sh
num = 0
num = 1
num = 2
num = 3
num = 4

知識(shí):

觀察可知,until與while的用法其實(shí)一樣,while是知道條件不滿(mǎn)足則跳出循環(huán),until是條件滿(mǎn)足則跳出循環(huán),所以加個(gè)!符號(hào)即可。

補(bǔ)充:

上面的很多指令其實(shí)有陷阱,就是格式,在shell里面空格是很經(jīng)常使用的,只要會(huì)引起歧義的地方都要用空格隔開(kāi)。

  • [ ]、( ) 括號(hào)的前后都要有空格
  • 變量的賦值=之間不要有空格
  • 使用變量時(shí)要加$
  • $變量的加減+ - 之間要有空格

循環(huán)語(yǔ)句的分析就到這邊,有感悟時(shí)會(huì)持續(xù)會(huì)更新。

注:以上內(nèi)容來(lái)自C語(yǔ)言中文網(wǎng)及本人在使用過(guò)程的一些理解整理。如有侵權(quán),請(qǐng)及時(shí)通知我,我將馬上刪除,如有錯(cuò)誤之處也請(qǐng)指出,進(jìn)行探討學(xué)習(xí)。文章只是起一個(gè)引導(dǎo)作用,詳細(xì)的數(shù)據(jù)解析內(nèi)容還請(qǐng)查看Shell相關(guān)教程,感謝您的查閱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 個(gè)人學(xué)習(xí)批處理的初衷來(lái)源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求,從而在測(cè)試過(guò)程中就重復(fù)涉及到...
    Luckykailiu閱讀 5,003評(píng)論 0 11
  • Shell 快速指南 概述 什么是 shell Shell 是一個(gè)用 C 語(yǔ)言編寫(xiě)的程序,它是用戶(hù)使用 Linux...
    靜默虛空閱讀 767評(píng)論 0 5
  • 基礎(chǔ) 頭文件 #!/bin/bash 或者#!/bin/sh #!約定的標(biāo)記,如IOS的Import 執(zhí)行文件時(shí)需...
    ZMJun閱讀 1,343評(píng)論 1 2
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,897評(píng)論 18 399
  • 1.英語(yǔ)連同昨天15+25 聽(tīng)書(shū)(補(bǔ)昨天)《批判性思維》《窮查理寶典1》《窮查理寶典2》 2.寫(xiě)作 列出講座提綱 ...
    躲進(jìn)小樓看燈火閱讀 109評(píng)論 0 0

友情鏈接更多精彩內(nèi)容