91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

BASH shell腳本篇—條件命令

冬至子 ? 來源:CSDN ? 作者:谷公子 ? 2023-10-11 15:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這篇文章介紹下BASH shell中的條件相關(guān)的命令,包括:if, case, while, until, for, break, continue。

1. If語句

if語句用于在順序執(zhí)行語句的流程中執(zhí)行條件任務。If語句通常用于在Bash腳本中做出決定。它們根據(jù)可能設置的條件來決定是否運行一段代碼。if語句的語法格式有幾種,如下:

# 1. if語句基本格式:
# 注意:觀察第一行中使用的空格,在第一行末尾使用分號。兩者都必須使
#       用,if條件語句以fi結(jié)尾
if [ condition ];  
then  
statements  
fi
 
# 2. if-else語法格式:
if [ condition ];  
then  
   < if block commands >  
else  
   < else block commands >  
fi
 
 
# 3. else-if語法格式:
if [ condition ];  
then  
< commands >  
elif [ condition ];  
then  
< commands >  
else  
< commands >  
fi

if語句condition中可以包含一些操作符去處理更復雜的場景。以下是一些最常用的操作符:

image.png

2. case語句

Bash case語句是具有許多ELIF元素的IF-THEN-ELSE的最簡單形式。使用case語句使bash腳本更具可讀性,并且更易于維護。它通常用于簡化具有多種不同選擇的復雜條件。case語句的語法如下:

case expression in  
    pattern_1)  
        statements  
        ;;  
    pattern_2)  
        statements  
        ;;  
    pattern_3|pattern_4|pattern_5)  
        statements  
        ;;  
    pattern-n)  
        statements  
        ;;  
    *)  
        statements  
        ;;  
esac
# 包含語句的模式稱為子句,并且必須以雙分號(;;)終止
# 星號(*)用作定義默認情況的最終模式。當用作最后一種情況時,它用作默認情況

首先,case語句擴展表達式并嘗試與每個包含的模式匹配。找到匹配項后,將執(zhí)行所有鏈接的語句,直到雙分號(;;)為止。在第一個匹配項之后,case以最后執(zhí)行的語句的退出狀態(tài)終止。
如果沒有匹配的模式,則case的退出狀態(tài)為零。

否則,返回狀態(tài)是已執(zhí)行語句的退出狀態(tài)。如果使用默認的星號( * )模式,則在沒有匹配模式的情況下將執(zhí)行它。

3. for循環(huán)

bash shell腳本也支持for循環(huán)以執(zhí)行重復性任務。它有助于在字符串中的一系列單詞或數(shù)組中的元素上迭代一組特定的語句。例如,可以多次運行UNIX命令(或任務),也可以僅使用for循環(huán)讀取和處理命令列表。

可以通過兩種方式在bash腳本上應用for循環(huán)。一種方法是for-in,另一種方法是C語言語法。for循環(huán)的語法:

# 方法1,list可以包含數(shù)字或字符串等,以空格分隔
for variable in list  
do  
commands  
done
# 方法2
for (( expression1; expression2; expression3 ))  
do  
commands  
done

當bash的三個表達式中沒有“開始,條件和增量”循環(huán)時,它將變?yōu)闊o限循環(huán)。要終止Bash中的無限循環(huán),可以按Ctrl + C。

4. while循環(huán)

while循環(huán)可以定義為控制流語句,只要所應用的條件為真,該語句就允許重復執(zhí)行給定的命令集。例如,可以運行多次echo命令,也可以僅逐行讀取文本文件,然后使用Bash中的while循環(huán)處理結(jié)果。while循環(huán)格式:

while [ expressions ];  
do  
commands;  
multiple commands;  
done
# expressions可以是單條件或多條件

5. until循環(huán)

until循環(huán)用于根據(jù)表達式的布爾結(jié)果重復執(zhí)行一組命令。僅在表達式的值為真之前執(zhí)行命令集。因此當表達式的計算結(jié)果為false時,將迭代執(zhí)行一組命令。當表達式首次為真時,循環(huán)終止。until循環(huán)與while循環(huán)相似,但是概念相反。until循環(huán)的語法格式:

until [ expressions ];  
do  
command1  
command2  
. . .  
. . .
commandN  
done

6. break和continue

可以在循環(huán)中使用break語句來終止循環(huán)??梢栽谘h(huán)中使用continue語句來跳過特定條件下的特定語句。它告訴Bash停止執(zhí)行循環(huán)的特定迭代并處理下一個迭代。

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

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145648
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    375

    瀏覽量

    25405
  • for循環(huán)
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    2889
  • bash終端
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2097
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Gemini CLI 中轉(zhuǎn)站配置使用教程

    :訪問 100 萬 token 上下文窗口 ? 內(nèi)置工具 :Google 搜索基礎功能、文件操作、Shell 命令、網(wǎng)頁抓取 ? 可擴展 :支持 MCP(模型上下文協(xié)議)進行自定義集成 ? 終端優(yōu)先
    發(fā)表于 02-10 17:29

    Shell歷史命令history用法

    1. 顯示歷史命令列表 「介紹」:history 命令用于顯示當前會話中執(zhí)行過的命令的列表,以及每個命令對應的編號?!甘纠a」:history 2. 使用歷史
    發(fā)表于 12-02 06:10

    【瑞薩RA6E2】1.使用串口shell點亮LED燈

    _TEXT_CMD_TOO_LONG, /**< 命令過長 */ SHELL_TEXT_CMD_LIST,/**< 可執(zhí)行命令列表標題 */ SHELL_TEXT_VAR_
    發(fā)表于 11-09 17:26

    e203仿真報Syntax error: \"&amp;\"unexpected錯誤的原因

    “NO” 再試一下: ls -l /bin/sh 改成bash 再跑測試程序: 成功! 原因分析:dash和bash應該是shell腳本語言的兩種解釋方式,Ubuntu默認采用d
    發(fā)表于 11-05 13:39

    【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目-實現(xiàn)開機起動

    0接上文【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目 Linux 起動系統(tǒng)下 init 系統(tǒng)大多數(shù) Linux 發(fā)行版
    發(fā)表于 11-03 17:25

    【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈按鈕項目

    0接上文【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目-實現(xiàn)開機起動 EASYEAINano-TB(RV1126B)是一款專為
    發(fā)表于 11-03 10:00

    【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-燈閃

    )。 命令行功能測試 我準備在Ubuntu主板命令行啟動后網(wǎng)絡SSH 下用shell腳本進行控制部分硬件測試。從IO控制-燈閃開始。 EASY EAI Nano-TB可以基于Moba
    發(fā)表于 11-01 21:26

    關(guān)于系統(tǒng)鏈接腳本的介紹

    一、隊伍介紹 本篇為蜂鳥E203系列分享第四篇,本篇介紹的內(nèi)容是系統(tǒng)鏈接腳本。 二、如何實現(xiàn)不同的下載模式? 實現(xiàn)三種不同的程序運行方式,可通過makefile的命令行指定不同的鏈接
    發(fā)表于 10-30 08:26

    shell基本介紹及常用命令shell基本介紹

    提示符是“$”,在命令提示符后邊輸入命令即可和系統(tǒng)進行交互操作。ubuntu默認的ShellBash(Bourne Again Shell
    發(fā)表于 09-28 09:05

    termux輸出Hello termux

    的 Python 語法 Python 腳本文件中只需包含純 Python 代碼,無需添加 `python` 命令或 HTML 標簽(如 ``)。錯誤信息中的 `python` 導致解釋器無法識別語法 。 2.
    發(fā)表于 08-29 12:16

    【創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗】--開發(fā)板外設與接口測試

    本篇講述開發(fā)板使用shell命令進行驅(qū)動測試。 1.LED亮滅 開發(fā)板板載兩顆用戶LED,原理如下 下面輸入腳本命令,可以控制LED1、LED2亮滅 (1)控制LED1亮echo 1
    發(fā)表于 07-27 16:27

    【RA-Eco-RA6M4開發(fā)板評測】移植shell實現(xiàn)命令交互

    /XLmbJn0SKoDT1aLdxHDrbg 一個超級精簡高可移植的shell命令行C實現(xiàn)二. 移植移植參考上述文章,很簡單只需要實現(xiàn)輸入輸出接口 即可。代碼見shell.c/h shell
    發(fā)表于 07-19 22:47

    Shell腳本入門指南

    Shell 是一塊包裹著系統(tǒng)核心的殼,處于操作系統(tǒng)的最外層,與用戶直接對話,把用戶的輸入, 解釋給操作系統(tǒng),然后處理操作系統(tǒng)的輸出結(jié)果,輸出到屏幕給與用戶看到結(jié)果。
    的頭像 發(fā)表于 06-03 10:47 ?1216次閱讀
    <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門指南

    【米爾-RK3562開發(fā)板試用評測】命令行功能測試-shell腳本進行IO控制-(綠色)RUN 燈、(紅色)User燈

    shell腳本進行命令行功能測試 控制部分硬件測試。從IO控制-燈閃開始。 板手冊中LED例: **應開發(fā)板上的 RUN 燈 為例進行LED燈測試 root@myd-yr3562:~# cd
    發(fā)表于 05-09 18:19

    樹莓派新手必看!在樹莓派上編寫和運行 Shell 腳本

    在本教程中,我將討論Shell腳本的基礎知識、它們的用途以及如何在RaspberryPi上編寫和運行Shell腳本。什么是Shell
    的頭像 發(fā)表于 03-25 09:28 ?1171次閱讀
    樹莓派新手必看!在樹莓派上編寫和運行 <b class='flag-5'>Shell</b> <b class='flag-5'>腳本</b>!