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