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