在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ shell 學(xué)習(xí)二十九天---循環(huán)
shell 學(xué)習(xí)四十五天---xargs
shell學(xué)習(xí)第三天
shell 學(xué)習(xí)十五天---join 連接字段
shell 學(xué)習(xí)第二天
shell 學(xué)習(xí)四十三天---臨時性文件的建立與使用
shell 學(xué)習(xí)第六天---小結(jié)
shell 學(xué)習(xí)三十三天---關(guān)于重定向
shell 學(xué)習(xí)二十九天---循環(huán)
shell 學(xué)習(xí)二十四天---提取開頭或結(jié)尾數(shù)行
shell 學(xué)習(xí)第十天---sed 查找與替換
shell 學(xué)習(xí)第十一天---sed 正則的精確控制
shell 學(xué)習(xí)三十天---break,continue,shift,getopts
shell 學(xué)習(xí)---小結(jié)
shell 學(xué)習(xí)三十一天---函數(shù)問題
shell 學(xué)習(xí)第四天---華麗的 printf 輸出
shell 學(xué)習(xí)三十五天---波浪號展開與通配符
shell 學(xué)習(xí)十九天---文本塊排序
shell 學(xué)習(xí)十二天---行與字符串
shell 學(xué)習(xí)二十一天---重新格式化段落
shell 學(xué)習(xí)十八天---文本排序
shell 學(xué)習(xí)十三天---sed 案例分析
shell 學(xué)習(xí)四十一天---列出文件 ls 和 od 命令
shell 學(xué)習(xí)十七天---awk 命令
shell 學(xué)習(xí)三十六天---命令替換
shell 學(xué)習(xí)十六天---join 練習(xí)
shell 學(xué)習(xí)三十二天---read 讀取一行
shell 學(xué)習(xí)二十二天---計算行數(shù),字?jǐn)?shù)以及字符數(shù)
shell 學(xué)習(xí)小總結(jié)---本章小結(jié)
shell 學(xué)習(xí)第八天---擴(kuò)展正則表達(dá)式(ERE)
shell 學(xué)習(xí)四十二天---使用 touch 更新文件時間
shell 學(xué)習(xí)二十八天---case 語句
shell 學(xué)習(xí)三十九天---內(nèi)建命令
shell 學(xué)習(xí)第一天
shell 學(xué)習(xí)三十四天---printf 詳解
shell 學(xué)習(xí)二十六天---變量與算數(shù)
shell 學(xué)習(xí)三十八天---執(zhí)行順序和 eval
shell 學(xué)習(xí)四十四天---尋找文件
shell 學(xué)習(xí)二十五天---神器的管道符
shell 學(xué)習(xí)十四天---使用 cut 選定字段
shell 學(xué)習(xí)第五天---基本的I/O重定向
shell 學(xué)習(xí)四十天---awk 的驚人表現(xiàn)
shell 學(xué)習(xí)二十天---sort 的其他內(nèi)容以及 uniq 命令
shell 學(xué)習(xí)二十三天---打印
shell 學(xué)習(xí)第九天---分組
shell 學(xué)習(xí)四十八天---文件校驗和匹配
shell 學(xué)習(xí)二十七天---退出狀態(tài)和 if 語句
shell 學(xué)習(xí)四十七天---文件比較 cmp,diff,patch
shell 學(xué)習(xí)第七天---基礎(chǔ)正則表達(dá)式(BRE)
shell 學(xué)習(xí)四十六天---文件系統(tǒng)的空間信息 df 和 du 命令
shell 學(xué)習(xí)三十七天---引用
shell 學(xué)習(xí)小結(jié)

shell 學(xué)習(xí)二十九天---循環(huán)

bash shell 中主要提供了三種循環(huán):for,while,until
for 循環(huán)
for 循環(huán)的運作方式是將串行的元素取出,依次放入指定的變量中,然后重復(fù)執(zhí)行在 do 和 done 之間的命令,知道所有元素取盡為止.
其中,串行是一些字符串的組合,彼此使用$IFS 所定義的分隔符(如空格符)隔開,這些字符串成為為字段.
語法:
for 變量 in 串行 //將串行中的字段迭代放入變量中
do
執(zhí)行命令 //重復(fù)執(zhí)行,知道串行中的每一個字段處理過為止.
done
案例: 用 for 循環(huán)在 tmp 目錄下創(chuàng)建 aaa1-aaa10,然后在 aaa1-aaa10 創(chuàng)建 bbb1-bbb10 的目錄

 #!/bin/bash  
mkdir hahaha  
for k in $(seq 1 10)  
do  
        mkdir /tmp/hahaha/aaa${k}  
        cd /tmp/hahaha/aaa${k}  
        for j in $(seq 1 10)  
        do  
                mkdir bbb${j}  
                cd /tmp/hahaha/aaa${k}  
        done  
        cd ..  
done  

說明:
行 3,seq 用于產(chǎn)生從某個數(shù)到另外一個數(shù)之間的所有整數(shù)。
行 5,在 tmp 目錄下創(chuàng)建文件夾。
行 7,在使用一個 for 循環(huán)創(chuàng)建文件夾

案例二: 列出 var 目錄下各子目錄占用磁盤空間的大小。

 #!/bin/bash  
dir="/var"                                                           
cd $dir  
for k in $(ls $dir)  
do  
        if [ -d $k ]  
        then  
                du -sh $k  
        fi  
done  

說明:
行 4,對/var 目錄中每一個文件,進(jìn)行 for 循環(huán)處理。
行 6,如果/var 下的文件是目錄,則使用 du -sh 計算該目錄占用磁盤空間的大小。

while 循環(huán)
語法:
while 條件測試
do
執(zhí)行命令
done
說明:
行 1 ,首先進(jìn)行條件測試,如果傳回值為 0(條件測試為真),則進(jìn)入循環(huán),執(zhí)行命令區(qū)域,否則不進(jìn)入循環(huán)
行 3,執(zhí)行命令區(qū)域,這些命令中,應(yīng)該要有改變天劍測試的命令,這樣,才有機(jī)會在有限步驟后結(jié)束之星 while 循環(huán).
行 4,回到行 1,執(zhí)行 while 命令.
案例:求 1 到 100 的和

 #!/bin/bash  
sum=0  
i=1  
while [ "$i" -le "100" ]  
do  
        sum=$(( $sum+$i ))  
        i=$(( $i+1 ))  
done  
echo "sum(1-100):" $sum  

until 循環(huán)
語法:
until 條件測試
do
執(zhí)行命令
done
說明:
行 1,如果條件測試結(jié)果為假(傳回值不為 0),則進(jìn)入循環(huán)
行 3,執(zhí)行命令區(qū)域.這些命令中,應(yīng)該有改變條件測試的內(nèi)容,這樣才不會出現(xiàn)死循環(huán).
行 4,會到行 1,執(zhí)行 until 命令
案例:計算 1-100 的和

 #!/bin/bash  
sum=0  
i=1  
until ((i>100))  
do  
        sum=$(( $sum+$i ))  
        i=$(( $i+1 ))  
done  
echo $sum  

分析:只要條件測試未超過 100,就進(jìn)入循環(huán),
其他的和 while 類似.

其實 for 循環(huán)還有一種方式:
for((初始值; 條件; 執(zhí)行步長))
do 程序段
done
注意細(xì)節(jié):for((初始值; 條件; 執(zhí)行步長))里面的預(yù)壓和 c 語言一樣了,但是一點不同雙括號。

for 循環(huán)案例:列出指定目錄下的所有文件

 #!bin/bash  
read -p "Please enter the dir name:" dirname  
for file in $(ls $dirname)  
do  
            echo $file  
done  

復(fù)習(xí)一下 seq 命令
seq 選項 參數(shù)
主要選項:
-s 指定分隔符,默認(rèn)是換行
-w 等位補全,就是寬度相等,不足的前面補 0
-f 格式化輸出,就是指定打印的格式
案例:
使用命令:seq 2
輸出:
1
2
使用seq -s “--” 2
輸出 :1--2
案例:
[root@localhost tmp]# seq -f %05g 1 10
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010