国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > Linux Shell > 正文

Shell中的循環(huán)語(yǔ)句for、while、until實(shí)例講解

2020-07-27 19:16:14
字體:
供稿:網(wǎng)友

在編程語(yǔ)言中,循環(huán)語(yǔ)句是最基本的語(yǔ)法之一,在Shell(這里是Bash)中也不例外,再把以前自己寫過的相關(guān)內(nèi)容整理一下吧。

這里包括for/while/until循環(huán),以及變量自增的語(yǔ)法實(shí)例。

Shell(以Bash為例)中的循環(huán)語(yǔ)句一般有for、while、until這幾種,偶爾還有寫錯(cuò)語(yǔ)法的時(shí)候,這里結(jié)合實(shí)例來自己總結(jié)一下。也為今后使用提供一個(gè)快捷的資料獲取渠道。

一、for循環(huán)語(yǔ)句

實(shí)例1.1 最基本的for循環(huán): (傳統(tǒng)的形式,for var in …)

復(fù)制代碼 代碼如下:

#!/bin/bash
for x in one two three four
do
        echo number $x
done

注:”for” 循環(huán)總是接收 “in” 語(yǔ)句之后的某種類型的字列表。在本例中,指定了四個(gè)英語(yǔ)單詞,但是字列表也可以引用磁盤上的文件,甚至文件通配符。
實(shí)例1.2 對(duì)目錄中的文件做for循環(huán)
復(fù)制代碼 代碼如下:

#!/bin/bash
for x in /var/log/*
do
        #echo "$x is a file living in /var/log"
        echo $(basename $x) is a file living in /var/log
done

注:這個(gè)$x獲得的是絕對(duì)路徑文件名;可以使用 “basename” 可執(zhí)行程序來除去前面的路徑信息。如果只引用當(dāng)前工作目錄中的文件(例如,如果輸入 “for x in *”),則產(chǎn)生的文件列表將沒有路徑信息的前綴。
實(shí)例1.3 對(duì)位置參數(shù)做for循環(huán)
復(fù)制代碼 代碼如下:

#!/bin/bash
for thing in "$@"
do
        echo you typed ${thing}.
done

實(shí)例1.4 for循環(huán)中用seq產(chǎn)生循環(huán)次數(shù),加上C語(yǔ)言形式的for循環(huán)語(yǔ)句
復(fù)制代碼 代碼如下:

#!/bin/bash
echo "for: Traditional form: for var in ..."
for j in $(seq 1 5)
do
        echo $j
done

echo "for: C language form: for (( exp1; exp2; exp3 ))"

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

注:對(duì)于固定次數(shù)的循環(huán),可以通過seq命令來實(shí)現(xiàn),就不需要變量的自增了;這里的C語(yǔ)言for循環(huán)風(fēng)格是挺熟悉的吧。

二、while循環(huán)語(yǔ)句

實(shí)例2.1 循環(huán)輸出1到10的數(shù)字

復(fù)制代碼 代碼如下:

#!/bin/bash
myvar=1
while [ $myvar -le 10 ]
do
        echo $myvar
        myvar=$(( $myvar + 1 ))
done

注:只要特定條件為真,”while” 語(yǔ)句就會(huì)執(zhí)行

三、until循環(huán)語(yǔ)句

實(shí)例3.1 循環(huán)輸出1到10的數(shù)字
“Until” 語(yǔ)句提供了與 “while” 語(yǔ)句相反的功能:只要特定條件為假,它們就重復(fù)。下面是一個(gè)與前面的 “while” 循環(huán)具有同等功能的 “until” 循環(huán)。

復(fù)制代碼 代碼如下:

#!/bin/bash
myvar=1
until [ $myvar -gt 10 ]
do
        echo $myvar
       myvar=$(( $myvar + 1 ))
done

Linux Shell中寫循環(huán)時(shí),常常要用到變量的自增,現(xiàn)在總結(jié)一下整型變量自增的方法。
我所知道的,bash中,變量自增,目前有五種方法:
1. i=`expr $i + 1`;
2. let i+=1;
3. ((i++));
4. i=$[$i+1];
5. i=$(( $i + 1 ))
可以實(shí)踐一下,簡(jiǎn)單的實(shí)例如下:
復(fù)制代碼 代碼如下:

#!/bin/bash
i=0;
while [ $i -lt 4 ];
do
      echo $i;
      i=`expr $i + 1`;
      # let i+=1;
      # ((i++));
      # i=$[$i+1];
      # i=$(( $i + 1 ))
done

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高雄县| 交口县| 宁陕县| 连平县| 峨边| 吉水县| 佛学| 天气| 平阴县| 莱西市| 柘城县| 兴山县| 乌什县| 聂荣县| 淮阳县| 麟游县| 崇阳县| 图片| 大新县| 于田县| 阜平县| 德兴市| 霸州市| 丰县| 涞源县| 延川县| 河东区| 伊吾县| 淮北市| 南皮县| 绥中县| 西充县| 宣恩县| 门头沟区| 育儿| 台东市| 彝良县| 垫江县| 峡江县| 竹山县| 罗甸县|