for循环
for语句语法:
for 变量名 in 参数列表
do
命令列表
done
语义:将参数列表 中的元素依次赋值给变量名 ,在每次赋值后执行 命令列表 ,参数列表 表示 变量名 取值范围。
其中参数列表的形式有多种:
<1>直接给出具体的值
可以在 in 关键字后面直接给出具体的值,多个值之间以空格分隔,比如1 2 3 4 5、“abc” “390” "tom"等。
for var in 1 2 hello
<2> 给出一个取值范围
给出一个取值范围的具体格式为:{start…end}
#!/bin/bash
sum=0
for n in {1..100}
do
((sum+=n))
done
echo $sum
<3> 使用命令的执行结果
使用反引号``或者$()都可以取得命令的执行结果
#!/bin/bash
##计算从 1 到 100 之间所有偶数的和##
sum=0
for n in $(seq 2 2 100) #seq 2 2 100表示从 2 开始,每次增加 2,到 100 结束。
do
((sum+=n))
done
echo $sum
break语句
语法:
break[n]
语义:在循环体中使用 break 语句,表示从循环体中跳出, n 表示是跳出几层循环,默认是1。
continue语句语法:
continue[n]
语义:表示跳过循环体中之后的语句,回到循环开头,进行下一次循环。
exit语句语法
exit[n]
语义:退出运行脚本,n 为运行脚本的返回值。
例题解答
1、求出若干数中的最小值
[root@system1 ~]# vim test08.sh
#!/bin/bash
##求出若干数中的最小值##
smallest=10000
for i in 12 5 -3 58 80
do
if test $i -lt $smallest
then
smallest=$i
fi
done
echo "The smallest number is:$smallest"
[root@system1 ~]# chmod a+x ./test07.sh
[root@system1 ~]#
[root@system1 ~]#
[root@system1 ~]# ./test07.sh
The smallest number is:-3
2、在当前目录下逐个显示.sh 结尾的shell脚本的内容
#!/bin/bash
##逐个显示当前目前下以.sh结尾的shell脚本内容##
for file in `ls *.sh`
do
echo "Filename:$file"
echo "___________"
done
运行结果:
[root@system1 ~]# ./test08.sh
Filename:1printf.sh
___________
Filename:foo.sh
___________
Filename:test01.sh
___________
Filename:test02.sh
___________
Filename:test03.sh
___________
Filename:test04.sh
3、显示所有命令行参数
#!/bin/bash
##显示命令行参数##
for arg
do
echo $arg
done
运行结果:
[root@system1 ~]# chmod a+x ./test10.sh
[root@system1 ~]# ./test10.sh 1 2 3 4
1
2
3
4