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 "33[32m 1到100的和为:$j 33[0m";
#!/bin/bash
# 计算1到100的和
j=0
for i in {1..100}
do
    j=`expr $i + $j`
done

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

echo -e "33[32m 1到100的和为:$j 33[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 '33[32m 1到10的和为:55 33[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 '33[32m 1到10的和为:55 33[0m'
 1到10的和为:55 

批量压缩文件,批量传输文件都可用到for循环。

原文地址:https://www.cnblogs.com/jiqing9006/p/10044654.html