shell for循环

柔情痞子 提交于 2020-02-14 08:05:53

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循环。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!