自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Linux的bash中永遠(yuǎn)循環(huán)

系統(tǒng) Linux
在 Linux 中有很多永遠(yuǎn)循環(huán)(或直到你決定停止)的方法,你可以在命令行或腳本中執(zhí)行此操作。

[[331975]]

在 Linux 中有很多永遠(yuǎn)循環(huán)(或直到你決定停止)的方法,你可以在命令行或腳本中執(zhí)行此操作。

for 和 while 命令使這件事非常容易。關(guān)于相應(yīng)的語(yǔ)法和策略,只有幾件事要牢記。

使用 while

最簡(jiǎn)單的永遠(yuǎn)循環(huán)之一是使用 while 命令,后面跟上條件 true。 你不必使用諸如 while [ 1 -eq 1 ] 之類的邏輯或類似的測(cè)試。 while true 測(cè)試表示循環(huán)將一直運(yùn)行,直到你使用 CTRL-C 停止循環(huán)、關(guān)閉終端窗口或注銷為止。這是一個(gè)例子:

  1. $ while true
  2. > do
  3. > echo Keep running
  4. > sleep 3
  5. > done
  6. Keep running
  7. Keep running
  8. Keep running
  9. ^C

你也可以使用 while : 做同樣的事情。這里的關(guān)鍵是 : 總是返回成功,因此就像 while true 一樣,此測(cè)試永遠(yuǎn)不會(huì)失敗,并且循環(huán)會(huì)繼續(xù)運(yùn)行:

  1. $ while :
  2. > do
  3. > echo Keep running
  4. > sleep 3
  5. > done
  6. Keep running
  7. Keep running
  8. ^C

如果你在腳本中插入了無(wú)限循環(huán),并想提醒使用它的人如何退出腳本,那么可以使用 echo 命令添加提示:

  1. while :
  2. do
  3. echo Keep running
  4. echo "Press CTRL+C to exit"
  5. sleep 1
  6. done

使用 for

for 命令還提供了一種永遠(yuǎn)循環(huán)的簡(jiǎn)便方法。雖然不如 while true 明顯,但語(yǔ)法相當(dāng)簡(jiǎn)單。你只需要在有界循環(huán)中替換參數(shù)即可,它通常類似于 “c 從等于 1 開(kāi)始遞增,直到 5”:

  1. $ for (( c=1; c<=5; c++ ))

不指定任何參數(shù)的情況下:

  1. $ for (( ; ; ))

沒(méi)有起始值、增量或退出測(cè)試,此循環(huán)將永遠(yuǎn)運(yùn)行或被強(qiáng)制停止:

  1. $ for (( ; ; ))
  2. > do
  3. > echo Keep running
  4. > echo Press CTRL+C to exit
  5. > sleep 2
  6. > done
  7. Keep your spirits up
  8. Keep your spirits up
  9. Keep your spirits up

為什么要永遠(yuǎn)循環(huán)?

在現(xiàn)實(shí)中,你不會(huì)想永遠(yuǎn)循環(huán)下去,但一直運(yùn)行直到想要回家、工作完成或者遇到問(wèn)題才退出并不罕見(jiàn)。任何構(gòu)造為無(wú)限循環(huán)的循環(huán)都可以設(shè)置為根據(jù)各種情況退出。

該腳本將一直處理數(shù)據(jù)直到下午 5 點(diǎn),或者說(shuō)檢查發(fā)現(xiàn)第一次超過(guò) 5 點(diǎn)的時(shí)間:

  1. #!/bin/bash
  2.  
  3. while true
  4. do
  5. if [ `date +%H` -ge 17 ]; then
  6. exit # exit script
  7. fi
  8. echo keep running
  9. ~/bin/process_data # do some work
  10. done

如果要退出循環(huán)而不是退出腳本,請(qǐng)使用 break 命令而不是 exit。

  1. #!/bin/bash
  2.  
  3. while true
  4. do
  5. if [ `date +%H` -ge 17 ]; then
  6. break # exit loop
  7. fi
  8. echo keep running
  9. ~/bin/process_data
  10. done
  11. run other commands here

總結(jié)

永遠(yuǎn)循環(huán)很容易。指定要停止循環(huán)的條件卻需要花費(fèi)一些額外的精力。

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2020-04-09 10:18:51

Bash循環(huán)Linux

2020-06-17 17:29:11

BashLinux

2018-03-07 09:30:25

Linux命令Bash

2022-12-13 12:55:15

Bash循環(huán)

2023-12-14 13:02:00

BashLinuxShell

2023-10-19 14:52:27

2018-02-24 16:30:49

LinuxUnixBash

2022-03-30 09:32:32

BashtestLinux

2017-12-11 13:50:17

LinuxBash子字符串

2022-08-30 19:14:31

LinuxBash

2018-02-01 17:32:30

LinuxUNIXBash Shell

2022-03-24 08:57:30

Linux BashShell代碼

2018-08-01 10:45:13

WindowsWindows 10程序

2015-01-23 09:38:31

2021-08-30 07:50:42

腳本語(yǔ)言命令行

2019-08-23 10:42:00

Linux復(fù)制文檔

2020-03-02 14:45:53

Linux編輯字幕命令

2016-11-24 09:22:20

Linux時(shí)區(qū)NTP服務(wù)器

2022-10-24 07:57:47

DebianUbuntuLinux

2019-09-26 06:50:16

Linux命令回車字符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)