Linux shell for 循環(huán)和雙層循環(huán)

Shell 腳本一直以來不是很入門,很多時候就是用到再查,發(fā)現(xiàn)自己有幾個重復用比較高的點,還是記錄一下,至少查的時候能少費點功夫~~

1. for 循環(huán)

(1)列表for循環(huán)

for i in {1..0}
#for i in  1 2 3 4 5
do
  echo "the value is $i"
done

Shell支持使用略寫的計數(shù)方式,如{1..10},表示1到10的整數(shù)數(shù)字;
Shell還支持安規(guī)定的步數(shù)進行跳躍的方式實現(xiàn)列表for循環(huán),例如計算1~100之內所有奇數(shù)的和。

!# /bin/bash
sum=0
for i in {1..100..2}
do
  let "sum+=i"
done
echo $sum

i 按照2的增量增長,一直到增長到100。即實現(xiàn)100內奇數(shù)加和。還可以使用seq命令實現(xiàn)按2遞增來計算1..100內的所有奇數(shù)之和。for i in $(seq 1 2 100),seq 表示起始值為1,增量為2,結束條件值為100。

for循環(huán)除了數(shù)字列表,還可以生成字符串列表,如列出當前文件夾下的所有文件:

#!/bin/bash
for i in $(ls)
#for i in *
#for i in `ls`
do
  echo $i
done

還可以傳遞命令行參數(shù)

腳本:
#! /bin/bash
echo "number of arguments is $#"
echo "show parm list: $*"
echo "what you input is"
for i in "$@"
do
        echo $i
done

運行程序:
$ sh ./111.sh 1 2 3
number of arguments is 3
show parm list:1 2 3
what you input is
1
2
3

$#表示傳遞的參數(shù)的個數(shù);$@表示參數(shù)的列表。

(2) 類C風格的for循環(huán)
也稱之為計次循環(huán)。 切記使用的是雙括號。

#! /bin/bash
for((i=1;i<=5;i++))
do
        echo $i
done

運行:
sh ./222.sh
1
2
3
4
5

上面的計算100以內奇數(shù)的和可以使用類C的for循環(huán)實現(xiàn)

#!/bin/bash
sum=0
for((i=1;i<=100;i=i+2))
do
        let "sum+=i"
        #((sum+=i))
done

echo $sum

2. for雙層循環(huán)

通過for循環(huán)實現(xiàn)九九乘法表

#! /bin/bash

for((i=1;i<10;i++))
do
        for((j=1;j<=i;j++))
        do
                let sum=i*j
                echo -ne "$i*$j=$sum\t"
        done
        echo  ""
done

運行:
$ sh ./444.sh
1*1=1
2*1=2   2*2=4
3*1=3   3*2=6   3*3=9
4*1=4   4*2=8   4*3=12  4*4=16
5*1=5   5*2=10  5*3=15  5*4=20  5*5=25
6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36
7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49
8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81


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

相關閱讀更多精彩內容

友情鏈接更多精彩內容