iT邦幫忙

DAY 12
3

快快樂樂學會讓電腦幫我做事系列 第 9

[Shell Script] Day12-與 while 相反的 until

在 condition 中, while 是成立,才會繼續迴圈的執行,而 until 則是相反,在 until 的 condition 中,若不成立,他就會繼續執行迴圈,執行到 condition 成立為止。(也就是非0)
今天應該是在這三十天中介紹的最後一個迴圈控制了,今天介紹的就是跟 while 有著一樣的功能,但是剛剛好判斷方式相反的 until,他的格式如下:

until [ condition ]
do
	command1
	command2
	…
done

在 condition 中, while 是成立,才會繼續迴圈的執行,而 until 則是相反,在 until 的 condition 中,若不成立,他就會繼續執行迴圈,執行到 condition 成立為止。(也就是非0)

下面這個例子是,使用者輸入什麼,畫面就重複顯示什麼,直到使用者輸入 quit ,程式就會停止。在這個例子就是用 until 來完成,當輸入等於 quituntil 就不會繼續執行迴圈了!

#!/bin/bash

QUIT="quit"
USER_INPUT="a"
until [ "$QUIT" = "$USER_INPUT" ]; do
    echo -n "請輸入文字(輸入quit離開): "
    read USER_INPUT
    echo "你輸入的是: $USER_INPUT"
    echo ""
done

我們來試試執行的結果:

所以,當 『quit 等於 輸入的字串』為否時,迴圈就會繼續的執行下去!直到『quit 等於 輸入的字串』為真才回停止迴圈。

所以結論就是:

  • while 為真的時候,迴圈就會不斷繼續執行下去。
  • until 為真的時候,迴圈就會馬上停止。

因此,會讓 while 停止的條件,就會讓 until 繼續下去,反之亦然。

你說這是不是 while 天生就和 until 作對呢? 哈哈

鐵人賽文章分享
11 上一篇 迴圈 while 的三個範例
13 下一篇 繼續或者跳脫迴圈


上一篇
[Shell Script] Day11-迴圈 while 的三個範例
下一篇
[Shell Script] Day13-繼續或者跳脫迴圈
系列文
快快樂樂學會讓電腦幫我做事27

尚未有邦友留言

立即登入留言