Python风格的for in 循环
variable表示变量; value_list 表示 取值列表; in是shell中的关键字 for variable in value_list do statements done
[root@localhost for]# cat 06.sh
#!/bin/bash
sum=0
for n in 1 2 3 4 5 6
do
echo $n
((sum+=n))
done
echo "The sum is $sum"
[root@localhost for]# sh 06.sh
1
2
3
4
5
6
The sum is 21
root@localhost for]# cat 07.sh
#!/bin/bash
#value_list直接给出具体的值
for str in "huige" "http://www.westos.org" "爱学习" "哈哈哈哈"
do
echo $str
done
[root@localhost for]# sh 07.sh
huige
http://www.westos.org
爱学习
哈哈哈哈
{1..100}
[root@localhost for]# cat 08.sh
#!/bin/bash
#给出一个取值范围{start..end}
#start:起始值 end:终止值
#注意:中间用两个点号相连
#这种形式只支持数字和字母
sum=0
for n in {1..100}
do
((sum+=n))
done
echo $sum
[root@localhost for]# sh 08.sh
5050
{A-z}
[root@localhost for]# cat 09.sh
#!/bin/bash
for c in {A..z}
do
printf "%c" $c
done
[root@localhost for]# sh 09.sh
ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz[root@localhost for]#
[root@localhost for]# seq 2 2 100
2
4
……
100
根据命令的执行结果
反引号``或者$()里面的命令可以识别,处理命令执行的结果
[root@localhost for]# cat 10.sh
#!/bin/bash
#根据命令的执行结果
#反引号``或者$()
#Seq是一个linux命令 用来产生某个范围内的整数 并可以设置步长
sum=0
for n in $(seq 2 2 100)
do
((sum+=n))
done
echo $sum
[root@localhost for]# sh 10.sh
2550
for i in $(命令)
[root@localhost for]# cat 11.sh
#!/bin/bash
for filename in $(ls *.sh)
do
echo $filename
done
[root@localhost for]# sh 11.sh
01.sh
02.sh
……
10.sh
11.sh
可以使用通配符
[root@localhost for]# cat 12.sh
#!/bin/bash
#可以使用通配符
for filename in *.sh
do
echo $filename
done
[root@localhost for]# sh 12.sh
01.sh
02.sh
……
10.sh
11.sh
12.sh
使用特殊符号
[root@localhost for]# cat 13.sh
#!/bin/bash
#使用特殊符号
#$@表示参数列表中的所有参数
function func(){
for str in $@
do
echo $str
done
}
func C++ java Python shell C#
[root@localhost for]# sh 13.sh
C++
java
Python
shell
C#