Linux Shell系列教程之(十二)Shell until迴圈

来源:http://www.cnblogs.com/waitig/archive/2016/09/13/5868322.html
-Advertisement-
Play Games

本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程請看:Linux Shell系列教程 在上兩篇文章Linux Shell系列教程之(十)Shell for迴圈和Linux Shell系列教程之(十一)Shell while迴圈中,我們已經對Shell 迴圈語句的fo ...


本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程請看:Linux Shell系列教程

在上兩篇文章Linux Shell系列教程之(十)Shell for迴圈Linux Shell系列教程之(十一)Shell while迴圈中,我們已經對Shell 迴圈語句的for迴圈和while迴圈進行了詳細介紹,本篇給大家介紹下Shell 中的最後一種迴圈語句:Shell until迴圈。

Shell until迴圈

Shell until迴圈的介紹

Shell until迴圈和while迴圈差不多,區別在於while的條件測試是測真值,until迴圈則是測假值。

也就是說,在while迴圈中,如果條件測試結果為真(傳回值為0),就進入迴圈;在until迴圈中,如果條件測試結果為真(傳回值為0),就跳出迴圈,如果測試結果為假(傳回值不為0),則繼續迴圈。

Shell until迴圈語法

Shell until迴圈的語法如下:

until command
do
   Statement(s) to be executed until command is true
done

command 為條件表達式,如果返回值為 false,則繼續執行迴圈體內的語句,否則跳出迴圈。

Shell until迴圈使用舉例

還是老規矩,通過例子來深入瞭解下Shell until迴圈。

例子1:

#!/bin/bash
a=0
until [ ! $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done

說明:當【a不小於10】這個條件為假時,會在迴圈體內迴圈執行命令,也就是說,當a大於等於10時,才會跳出迴圈體。

這個腳本會輸出0-9數字。

輸出:

0

1

2

3

4

5

6

7

8

9

例子2:

#!/bin/bash
declare -i i=10
declare -i sum=0
until ((i>10))
do
  let sum+=i
  let ++i
done
echo $sum

說明:這個例子跟上篇文章中的例子很相似,但結果卻不一樣,具體的分析就留給讀者自己思考吧,想知道答案可以關註Linux大學公眾號(微信號:Linuxdaxue),然後發送【Shell until迴圈】來獲取答案,或者自己動手跑一跑例子啦。

關於Shell until迴圈的內容今天就先為大家介紹到這裡,更多Linux Shell教程請看:Linux Shell系列教程


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 今天在macOS 系統下搭建 Java開發環境,需要配置MySQL,按照Windows的習慣,使用Navicat for MySQL 操作比較習慣。然後找不到比較好的破解版,這裡介紹一個老版的,還是英文版的工具安裝破解說明。 1. 官網下載地址: http://download3.navicat.c ...
  • 前言 有些時候,我們可能會需要定時執行一下批處理來達到一定的目的,比如Oracle資料庫的定時備份,當然Oracle也可以通過Rman實現定時備份。我們大多數的時候是通過操作系統的計劃任務實現定時執行批處理。 但是當我們想要獲取相關執行細節,MSSQL的作業是一個很好的選擇。 具體方案 首先我們需要... ...
  • I/O: 系統設定 預設輸入設備:標準輸入,STDIN,0 預設輸出設備:標準輸出,STDOUT,1 標準錯誤輸出:STDERR,2 屬於不同的數據流 標準輸入:鍵盤 標準輸出和錯誤輸出:顯示器 I/O重定向: 輸出重定向: > :覆蓋輸出 >> :追加輸出 2>:錯誤輸出 2>>:追加錯誤輸出 正 ...
  • Nginx("engine x")是一款輕量級的HTTP和反向代理伺服器。相比於Apache、lighttpd等,它具有占有記憶體少、併發能力強、穩定性高等優勢。它最常見的用途就是提供反向代理服務。 在Linux下我們需要下載Nginx的源代碼包並且手動編譯,而不是用包管理工具,例如Yum、Aptit ...
  • 一、在伺服器上打開 22、80、9011埠: iptables -A INPUT -p tcp --dport 9011 -j ACCEPT iptables -A OUTPUT -p tcp --sport 9011 -j ACCEPT iptables -A INPUT -p tcp --dp ...
  • 本來是開始分析uboot代碼的,但是無論是教材還是網上資料都對於我最新下的 uboot原碼結構不同,對於還是小白的我不容易找到相應的文件,下麵是uboot版本中文件組織結構的改變,,,,, u-boot版本情況 網站:http://ftp.denx.de/pub/u-boot/ 1、版本號變化: 2 ...
  • Linux系統實戰項目——sudo日誌審計 由於企業內部許可權管理啟用了sudo許可權管理,但是還是有一定的風險因素,畢竟運維、開發等各個人員技術水平、操作習慣都不相同,也會因一時失誤造成誤操作,從而影響系統運行 因此,徵對sudo提權的操作,便於管理與後續維護,開啟sudo日誌審計功能對用戶執行 su ...
  • 本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程請看:Linux Shell系列教程 函數可以將一個複雜功能劃分成若幹模塊,從而使程式結構更加清晰,代碼重覆利用率更高。 高級語言都支持函數,Shell也不例外。今天就為大家介紹下Shell中函數相關用法。 一、She ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...