SHELL使用--for迴圈語句
阿新 • • 發佈:2020-08-28
目錄
for迴圈
for迴圈語法
# 語法(shell特徵:根據值進行迴圈)
for i in 值1 值2 值3
do
echo $i
done
示例一:固定值迴圈
[root@egon day05]# cat 7.sh
#!/bin/bash
for i in "aaa" 222 "ccc"
do
echo $i
done
示例二:執行結果迴圈
# 將目錄中的檔案作為執行條件,迴圈進行改名 [root@egon day05]# cat 8.sh #!/bin/bash for i in `ls /scripts/day05` do mv $i ${i/txt/sh} done
示例三:數值迴圈
# 這裡將1-5的值都進行了迴圈,然後依次顯示
#!/bin/bash
for i in {5..1}
do
echo $i
done
for i in {a..z}
do
echo $i
done
示例四:ip檢測
# 將範圍內所有的值進行迴圈,值有多少就迴圈多少次
#!/bin/bash
for i in {1..254}
do
ping -c1 10.0.0.$i &>/dev/null
[ $? -eq 0 ] && echo 10.0.0.$i
done
示例五:結合break和continue
# 使用結果和while一致,當使用continue時,將當前迴圈結束,不執行迴圈下方指令,但使用break將直接結束本層迴圈,也就直接退出,只會有AB兩個結果 [root@egon day05]# cat 9.sh #!/bin/bash for i in {A..Z} do if [ $i == "C" ];then # break continue fi echo $i done
案例六:統計資料夾下所有檔案型別
# 對傳入引數中的檔案或目錄進行判斷,統計檔案或其他檔案型別數量 #!/bin/bash [ $# -ne 1 ] && echo "必須傳入一個引數" && exit regular=0 dir=0 link=0 other=0 for fname in `ls $1` do if [ -L "$1/$fname" ];then let link++ elif [ -f "$1/$fname" ];then let regular++ elif [ -d "$1/$fname" ];then let dir++ else let other++ fi done echo "標準檔案個數:$regular" echo "目錄檔案個數:$dir" echo "軟連線檔案個數:$link" echo "其他檔案個數:$other"