Shell腳本【9】Shell for循環

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章