色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

bash腳本中的循環(huán)功能

CHANBAEK ? 來源:TIAP ? 作者:TIAP ? 2022-12-14 17:30 ? 次閱讀

循環(huán)是 bash 腳本中一個很重要的功能,用途廣泛。本篇文章我們介紹三種不同的循環(huán),然后利用循環(huán)遍歷數(shù)組。

for 循環(huán)

for 循環(huán)有兩種不同的寫法:

  • c 語言樣式的 for 循環(huán);
  • 列表中使用的 for 循環(huán)。

c 語言樣式的 for 循環(huán)

如果你熟悉 c 或者 c++編程語言,那么對于如下循環(huán)應該不會陌生:

for ((initialize ; condition ; increment)); do
    [COMMANDS]
done

根據(jù)上述語法,我們寫一個例子,打印 Hello Friend 十次:

for ((i = 0 ; i < 10 ; i++)); do
    echo "Hello Friend"
done

上述代碼中,首先將整型變量 i 初始化為 0,然后設置循環(huán)條件(i<10),如果條件為真,則執(zhí)行循環(huán),打印 Hello Friend,并將變量 i 遞增 1,然后進行下一次循環(huán),知道 i<10不再滿足。

$ bash hello.sh 
Hello Friend
Hello Friend
Hello Friend
Hello Friend
Hello Friend
Hello Friend
Hello Friend
Hello Friend
Hello Friend
Hello Friend

列表中使用的 for 循環(huán)

列表循環(huán)是 for 循環(huán)的一種變體,這在處理列表或者數(shù)組的時候特別方便,其語法如下:

for item in [LIST]; do
    [COMMANDS]
done

比如,我們重寫一下上面的那個例子:

for i in {1..10}; do
    echo "Hello Friend"
done

另一個例子,下面腳本 var.sh 將打印在 /var 目錄下的所有文件和目錄:

#!/bin/bash


for i in /var/*; do
    echo $i 
done

執(zhí)行一下,其輸出如下:

$ ./var.sh
/var/backups
/var/cache
/var/crash
/var/lib
/var/local
/var/lock
/var/log
/var/mail
/var/metrics
/var/opt
/var/run
/var/snap
/var/spool
/var/tmp

while 循環(huán)

while 循環(huán)是 bash 中另一個應用很廣泛的循環(huán),其語法如下:

while [ condition ]; do
    [COMMANDS]
done

作為演示,我創(chuàng)建一個名為 3x10.sh 的腳本,用于打印前10個3的倍數(shù):

#!/bin/bash


num=1
while [ $num -le 10 ]; do
echo $(($num * 3))
num=$(($num+1))
done

其執(zhí)行結果如下:

$ ./3x10.sh
3
6
9
12
15
18
21
24
27
30

上述腳本中,首先將變量 num 初始化為 1,然后設定循環(huán)條件為 num 小于或等于 10。在循環(huán)體中,打印 num 乘以 3,然后將 num 遞增 1。

until 循環(huán)

如果你有 c/c++ 編程背景,那你可能會不自覺的找 do-while 循環(huán)。但是,在 bash 中并不存在 do-while 循環(huán)。

bush 中存在另一種循環(huán),即 until 循環(huán),其與 while 循環(huán)具有相同的語法:

until [ condition ]; do
    [COMMANDS]
Done

until 循環(huán)與 while 循環(huán)之間的主要區(qū)別在于循環(huán)條件。當循環(huán)條件為真時,while 循環(huán)會繼續(xù),但是,當循環(huán)條件為假時,until 循環(huán)才會繼續(xù)。

比如上面我們寫的 3x10.sh 腳本,我們使用 until 循環(huán)來實現(xiàn),如下:

#!/bin/bash


num=1
until [ $num -gt 10 ]; do
echo $(($num * 3))
num=$(($num+1))
done

大家應該可以注意到,上面的循環(huán)條件為 $num -gt 10,為前一個例子中 -le 的否定。

循環(huán)的具體應用

上面我們介紹了 bash 中循環(huán)的用法,下面在實際例子中介紹一下循環(huán)的使用。

打印數(shù)組的內容

在此之前,我們假定大家了解 bash 中的數(shù)組

遍歷數(shù)組,for 循環(huán)通常是最首要的選擇。

如下腳本 prime.sh 中,將會遍歷并打印出數(shù)組中的所有元素:

#!/bin/bash


prime=(2 3 5 7 11 13 17 19 23 29)
for i in "${prime[@]}"; do
echo $i
done

執(zhí)行一下,結果如下:

$ ./prime.sh
2
3
5
7
11
13
17
19
23
29

在循環(huán)中使用 break 和 continue

有時候我們可能希望提前退出循環(huán),或者跳過本次循環(huán)。那么此時需要分別使用 break 和 continue。

break 將會終止循環(huán),并將程序控制轉到循環(huán)后的下一個命令或指令。

比如,下面的循環(huán)只會打印從 1 到 3:

for ((i=1;i<=10;i++)); do
    echo $i
    if [ $i -eq 3 ]; then
        break
    fi
done

使用 continue 語句會跳過本次循環(huán),繼續(xù)執(zhí)行下次循環(huán)。比如,下面腳本 odd.sh 只會打印從 1 到 10 之間的奇數(shù),而跳過偶數(shù):

#!/bin/bash
for ((i=0;i<=10;i++)); do
    if [ $(($i % 2)) -ne 1 ]; then
        continue
    fi
    echo $i
done

執(zhí)行結果如下:

$ ./odd.sh
1
3
5
7
9

無限循環(huán)

無限循環(huán)是一個永遠運行的循環(huán),其循環(huán)條件始終為真。大多數(shù)情況下,無限循環(huán)是因為邏輯錯誤造成的bug。

例如,有人可能希望創(chuàng)建一個循環(huán),以降序打印數(shù)字1到10,結果可能會錯誤地創(chuàng)建以下無限循環(huán):

for ((i=10;i>0;i++)); do
    echo $i
done

上述錯誤是將 i 遞增 1。要修復這個問題需要將遞增改為遞減 i--:

for ((i=10;i>0;i--)); do
echo $i
done

在某些情況下,我們可能希望有意創(chuàng)建無限循環(huán),以等待系統(tǒng)滿足外部條件。如下所示:

for ((;;)); do
[COMMANDS]
done

如果想要創(chuàng)建一個無限 while 循環(huán),可參考如下:

while [ true ]; do
    [COMMANDS]
done
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136692
  • 循環(huán)
    +關注

    關注

    0

    文章

    92

    瀏覽量

    15973
  • 腳本
    +關注

    關注

    1

    文章

    389

    瀏覽量

    14858
  • Bash
    +關注

    關注

    0

    文章

    57

    瀏覽量

    10179
收藏 人收藏

    評論

    相關推薦

    開發(fā)人員必須具備的Bash腳本知識

    您可以使用 Bash 腳本自動執(zhí)行各種任務。掌握基礎知識并開始您的 Bash 腳本之旅。
    發(fā)表于 09-27 09:09 ?424次閱讀

    bash腳本檢查子字符串的方法

    我們在寫 bash 腳本的時候,假如有一個字符串,我們想檢查其中是否包含另一個子字符串,那這個時候需要怎樣做呢?
    發(fā)表于 11-24 15:25 ?1619次閱讀
    <b class='flag-5'>bash</b><b class='flag-5'>腳本</b><b class='flag-5'>中</b>檢查子字符串的方法

    bash腳本的test命令詳解

    bash 腳本的 test? 命令用于檢查表達式的有效性,檢查命令或表達式為 true 或者 false。此外,它還可以用于檢查文件的類型和權限。
    發(fā)表于 11-24 15:32 ?3767次閱讀
    <b class='flag-5'>bash</b><b class='flag-5'>腳本</b><b class='flag-5'>中</b>的test命令詳解

    如何在bash shell腳本中使用變量

    如果你使用編程語言編寫過程序,那么一定接觸過變量。而在 bash 腳本的編寫時,變量也是一個很重要的概念。今天我們分享一下如何在 bash 腳本中使用變量。
    發(fā)表于 12-02 16:32 ?2105次閱讀
    如何在<b class='flag-5'>bash</b> shell<b class='flag-5'>腳本</b>中使用變量

    如何通過命令行將變量以參數(shù)的形式傳遞給bash腳本

    我們在上一篇文章中介紹了如何在 bash 腳本中使用變量,可以響應各種數(shù)據(jù)以及接收用戶輸入。
    發(fā)表于 12-02 16:38 ?1374次閱讀
    如何通過命令行將變量以參數(shù)的形式傳遞給<b class='flag-5'>bash</b><b class='flag-5'>腳本</b>

    高級Bash 腳本編程指南

    高級Bash 腳本編程指南
    發(fā)表于 10-26 08:33 ?7次下載
    高級<b class='flag-5'>Bash</b> <b class='flag-5'>腳本</b>編程指南

    命令行重度用戶需要的實用BASH腳本

    今天,我偶然發(fā)現(xiàn)了一組適用于命令行重度用戶的實用 BASH 腳本,這些腳本被稱為 Bash-Snippets,它們對于那些整天都與終端打交道的人來說可能會很有幫助。
    的頭像 發(fā)表于 08-30 10:37 ?2601次閱讀

    虛擬機:Bash Shell腳本打印出執(zhí)行的命令

    默認情況下,bash腳本不會打印執(zhí)行的每個命令,這個有時候不太方面。
    的頭像 發(fā)表于 06-22 14:44 ?4546次閱讀

    Raspberry Pi Bash Shell 腳本簡介

      拋開潛在的麻煩不談,Bash 可以是一個非常強大的工具,讓您可以自動執(zhí)行各種任務。在即將發(fā)表的文章,我將展示如何使用 Bash 腳本以及一些硬件技巧來自動化我的 Raspberr
    的頭像 發(fā)表于 08-15 15:08 ?1192次閱讀
    Raspberry Pi <b class='flag-5'>Bash</b> Shell <b class='flag-5'>腳本</b>簡介

    如何在bash shell腳本接受參數(shù)

    終端命令通常包含一些參數(shù),在使用的時候可以提供不同的參數(shù)來確定命令的執(zhí)行方式。POSIX規(guī)范包含了用于命令行接口的選項。這也是與最早的UNIX應用程序建立的一個由來已久的約定,所以當你在寫bash腳本的時候,需要知道如何在
    的頭像 發(fā)表于 12-09 17:34 ?2707次閱讀

    bash如何創(chuàng)建函數(shù)

    當你的 bash 腳本中代碼非常多的時候,會看起來很混亂,其中有部分代碼有可能是重復的。這個時候,可以使用函數(shù)來避免重復的代碼。
    的頭像 發(fā)表于 12-14 17:31 ?1152次閱讀

    Bash腳本特殊變量$0是什么?

    Bash 腳本,`$0` 是一個特殊變量,它代表當前腳本的路徑和名稱。這個變量用于表示腳本自身,它是
    的頭像 發(fā)表于 05-12 14:41 ?1841次閱讀

    BASH shell腳本篇—條件命令

    這篇文章介紹下BASH shell的條件相關的命令,包括:if, case, while, until, for, break, continue。
    的頭像 發(fā)表于 10-11 15:21 ?616次閱讀
    <b class='flag-5'>BASH</b> shell<b class='flag-5'>腳本</b>篇—條件命令

    BASH shell腳本篇—函數(shù)

    函數(shù)是代碼重用的最重要方式。Bash函數(shù)可以定義為一組命令,在bash腳本多次調用。
    的頭像 發(fā)表于 10-20 16:31 ?1098次閱讀

    BASH shell腳本篇—文件處理介紹

    Bash Shell腳本,可以使用多種方法來對文件進行操作,包括讀取文件或寫入文件。
    的頭像 發(fā)表于 10-23 16:51 ?620次閱讀
    主站蜘蛛池模板: 91次元黄色观看| 99国产精品欲AV蜜桃臀麻豆| 美女被爆羞羞天美传媒| 国产精品成人免费视频99| 99爱在线精品视频网站| 亚洲熟伦熟女专区| 天天干夜夜曰| 欧美日韩免费看| 男人狂躁进女人免费视频公交| 国内精品视频在线播放一区| 阿片在线播放| 70岁妇女牲交色牲片| 影音先锋av333资源网| 无人视频在线观看免费播放影院| 欧美末成年videos在线| 老色69久久九九精品高潮| 久久黄色网址| 精品夜夜澡人妻无码AV| 娇喘嗯嗯 轻点啊视频福利| 国产午夜精品久久久久婷婷| 国产精品久久久精品a级小说| 被黑人掹躁10次高潮| 粉嫩极品国产在线观看| 国产3级在线| 国产又黄又粗又爽又色的视频软件| 攻把受做哭边走边肉楼梯PLAY| 短篇合集纯肉高H深陷骚| 超污视频带污疼免费视频| 丹麦1o一19sex性hdhd| 国产精品成人影院| 好妞操| 蜜芽资源高清在线观看| 欧美日韩亚洲一区视频二区 | 亚洲一区在线观看无码欧美| 亚洲欧美中文字幕先锋| 正能量不良WWW免费窗口| aaa在线观看视频高清视频| 纯肉巨黄H爆粗口男男分卷阅读| 国产精品午夜小视频观看| 果冻传媒在线完整免费播放| 猫咪www958ii|