shell for循環


seq的效果

# seq 1 5
1
2
3
4
5

第一個for腳本

#!/bin/bash
# for 操作
for i in `seq 1 5`
do
    echo "num is $i"
done

計算1到100的和。

# expr 1 + 100
101
#!/bin/bash
# 計算1到100的和
j=0
for i in `seq 1 100`
do
    j=`expr $i + $j`
done

echo -e "\033[32m 1到100的和為:$j \033[0m";
#!/bin/bash
# 計算1到100的和
j=0
for i in {1..100}
do
    j=`expr $i + $j`
done

echo -e "\033[32m 1到100的和為:$j \033[0m";
#!/bin/bash
# 計算1到100的和
j=0
for((i=1;i<=100;i++))
do
    j=`expr $i + $j`
done

echo -e "\033[32m 1到100的和為:$j \033[0m";

-x可以查看執行過程。

/bin/bash -x for.sh 
+ BEGIN=1
+ END=10
+ j=0
+ (( i=1 ))
+ (( i<=10 ))
++ expr 1 + 0
+ j=1
+ (( i++ ))
+ (( i<=10 ))
++ expr 2 + 1
+ j=3
+ (( i++ ))
+ (( i<=10 ))
++ expr 3 + 3
+ j=6
+ (( i++ ))
+ (( i<=10 ))
++ expr 4 + 6
+ j=10
+ (( i++ ))
+ (( i<=10 ))
++ expr 5 + 10
+ j=15
+ (( i++ ))
+ (( i<=10 ))
++ expr 6 + 15
+ j=21
+ (( i++ ))
+ (( i<=10 ))
++ expr 7 + 21
+ j=28
+ (( i++ ))
+ (( i<=10 ))
++ expr 8 + 28
+ j=36
+ (( i++ ))
+ (( i<=10 ))
++ expr 9 + 36
+ j=45
+ (( i++ ))
+ (( i<=10 ))
++ expr 10 + 45
+ j=55
+ (( i++ ))
+ (( i<=10 ))
+ echo -e '\033[32m 1到10的和為:55 \033[0m'
 1到10的和為:55 

設置別名

# alias sh='/bin/bash'
# sh -x for.sh 
+ BEGIN=1
+ END=10
+ j=0
+ (( i=1 ))
+ (( i<=10 ))
++ expr 1 + 0
+ j=1
+ (( i++ ))
+ (( i<=10 ))
++ expr 2 + 1
+ j=3
+ (( i++ ))
+ (( i<=10 ))
++ expr 3 + 3
+ j=6
+ (( i++ ))
+ (( i<=10 ))
++ expr 4 + 6
+ j=10
+ (( i++ ))
+ (( i<=10 ))
++ expr 5 + 10
+ j=15
+ (( i++ ))
+ (( i<=10 ))
++ expr 6 + 15
+ j=21
+ (( i++ ))
+ (( i<=10 ))
++ expr 7 + 21
+ j=28
+ (( i++ ))
+ (( i<=10 ))
++ expr 8 + 28
+ j=36
+ (( i++ ))
+ (( i<=10 ))
++ expr 9 + 36
+ j=45
+ (( i++ ))
+ (( i<=10 ))
++ expr 10 + 45
+ j=55
+ (( i++ ))
+ (( i<=10 ))
+ echo -e '\033[32m 1到10的和為:55 \033[0m'
 1到10的和為:55 

批量壓縮文件,批量傳輸文件都可用到for循環。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM