茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671176 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00100.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [轉貼]Linux Shell 迴圈 while 的三個範例

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Linux Shell 迴圈 while 的三個範例
[Shell Script] Day11-迴圈 while 的三個範例
pajace2001

在介紹完 while 迴圈的三個樣子之後,緊接著當然是對這三個樣子作範例囉!這次的範例應該會有趣一些~
while] 迴圈能有什麼樣的應用呢?其實應用非常多,而且很常用到。

比如說,我想執行一個測試程式,我希望他跑個10小時,那該怎麼做?
當然就是用 while 啦!

比如說我想要編輯一份文件,在文件中若出現關鍵字,我就需要根據那關鍵字查詢對應表,在接著將查到的結果插入該文件關鍵字那行之下,也是可以用 while 來達成。

以下就根據昨天介紹的三個 while樣式來寫三個例子吧。

第一種:在條件成立時,就會不斷執行迴圈內容
#!/bin/bash

echo -n "請問你要幾個[妹]:"
read MA

INDEX=1
# 當條件成立,就會不斷執行(le表示小於或等於)
while [ $INDEX -le $MA ]
do
		# 輸出 妹
        echo -n "妹 "
		# INDEX 的值會加1
        (( INDEX++ ))
done
echo ""

echo "已經給你 $MA 個妹囉 了!"

執行結果:


第二種:無窮迴圈,直到外力介入才會停止
(在這次的範例中是以 Ctrl + C 來終止迴圈,下次的範例會用另一種方式來終止)
#!/bin/bash

echo "按下 Ctrl + C 中斷…"

LENGTH=0
while :
do
        echo -ne "\r["
        sleep 0.2
        while [ $LENGTH -le 10 ]
        do
                sleep 0.1
                echo -n ">"
                (( LENGTH++ ))
        done
        LENGTH=0
        echo -en "\r                          "
done

看看結果,在沒按下Ctrl+C 時,他是不會停的:

第三種:輸入一文字檔,在迴圈中一次只讀取一行:
首先我們先準備我們要輸入的文字檔:『story.txt』,內容是:

再來是我們的範例程式,我們會讀取每一行,接著在每一行前面加上行號:
#!/bin/bash

echo -n "請輸入要讀取的文字檔名稱:"
read FILE_NAME

INDEX=1
while read line
do
        echo "$INDEX: $line"
        (( INDEX++ ))
done <$FILE_NAME

執行結果:

有沒有覺得很簡單阿!!就是這麼簡單!! 讚

原文出處:[Shell Script] Day11-迴圈 while 的三個範例 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|