国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令

這篇具有很好參考價值的文章主要介紹了【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令,linux系統(tǒng),linux,運維,服務器,bash

一、概述

上篇文章 介紹了 if 語句相關知識。但 if 語句只能執(zhí)行命令,判斷該命令的結果,但在編程中,我們多數(shù)情況需要判斷一個變量的值是否為空?判斷兩個變量的值誰更大?判斷變量的字符串是否相等?這些判斷條件,使用 if 語句無法直接判斷。這篇文章介紹

【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令,linux系統(tǒng),linux,運維,服務器,bash

二、test 命令

2.1 test 命令

if 語句中只能執(zhí)行該語句后面的命令,并判斷命令的退出狀態(tài)碼,而不能判斷其他的條件,如:兩個值是否相等。如果想要判斷兩個值是否相等,就需要把這個判斷放到一個命令中,再把這個命令放在 if 語句后面去執(zhí)行,而 test 命令就可以來做這樣的判斷。

如果 test 命令中列出的條件成立,那么 test 命令就會退出并返回退出狀態(tài)碼 0。
test 命令的格式非常簡單:

test condition

condition 是 test 命令要測試的一系列參數(shù)和值。當用在 if-then 語句中時, test 命令看起來如下所示:

if test condition
then
	commands
fi

如果不寫 test 命令的 condition 部分,則它會以非 0 的退出狀態(tài)碼退出并執(zhí)行 else 代碼塊語句。

2.2 方括號測試條件

bash shell 提供了另一種條件測試方式,無須在 if-then 語句中寫明 test 命令:

if [ condition ]
then
	commands
fi

方括號定義了測試條件。
注意,第一個方括號之后和第二個方括號之前 必須 留有空格,否則就會報錯。

2.3 test 命令和測試條件可以判斷的 3 類條件

test 命令和測試條件可以判斷 3 類條件:

  • 數(shù)值比較
  • 字符串比較
  • 文件比較

2.3.1 數(shù)值比較

使用 test 命令最常見的情形是對兩個數(shù)值進行比較。下表列出了測試兩個值時可用的條件參數(shù)

比 較 描 述
n1 -eq n2 檢查 n1 是否等于 n2
n1 -ge n2 檢查 n1 是否大于或等于 n2
n1 -gt n2 檢查 n1 是否大于 n2
n1 -le n2 檢查 n1 是否小于或等于 n2
n1 -lt n2 檢查 n1 是否小于 n2
n1 -ne n2 檢查 n1 是否不等于 n2

注意:對于條件測試, bash shell 只能處理整數(shù)。

2.3.2 字符串比較

條件測試還允許比較字符串值。下表列出了可用的字符串比較功能

比 較 描 述
str1 = str2 檢查 str1 是否和 str2 相同
str1 != str2 檢查 str1 是否和 str2 不同
str1 < str2 檢查 str1 是否小于 str2
str1 > str2 檢查 str1 是否大于 str2
-n str1 檢查 str1 的長度是否不為 0
-z str1 檢查 str1 的長度是否為 0

注意

  • 在比較字符串的相等性時,比較測試會將所有的標點和大小寫情況都考慮在內(nèi)
  • 大于號和小于號必須轉(zhuǎn)義(\>、\< ),否則 shell 會將其視為重定向符,將字符串值當作文件名。
  • 比較測試中使用的是標準的 Unicode 順序,根據(jù)每個字符的 Unicode 編碼值來決定排序結果,結果和 sort 命令不同

【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令,linux系統(tǒng),linux,運維,服務器,bash

三、復合條件測試

if-then 語句允許使用布爾邏輯將測試條件組合起來。可以使用以下兩種布爾運算符

  • [ condition1 ] && [ condition2 ]
  • [ condition1 ] || [ condition2 ]

第一種布爾運算使用布爾運算符 AND 來組合兩個條件。要執(zhí)行 then 部分的命令,兩個條件都必須滿足。
第二種布爾運算使用 OR 布爾運算符來組合兩個條件。如果任意條件為真,那么 then 部分的命令就會執(zhí)行。

例子:

#!/bin/bash
# Testing an AND Boolean compound condition
#
if [ -d $HOME ] && [ -w $HOME/newfile ]
then
echo "The file exists and you can write to it."
#
else
echo "You cannot write to the file."
#
fi

【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令,linux系統(tǒng),linux,運維,服務器,bash

四、if-then 的高級特性

bash shell 還提供了 3 個可在 if-then 語句中使用的高級特性。\

  • 在子 shell 中執(zhí)行命令的單括號。
  • 用于數(shù)學表達式的雙括號。
  • 用于高級字符串處理功能的雙方括號。

【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令,linux系統(tǒng),linux,運維,服務器,bash

五、case 命令

如果在在一組可能的值中尋找特定值,使用if語句來判斷的話,代碼會很冗長。shell提供了case命令來解決此類問題。
case 命令會采用列表格式來檢查變量的多個值,其格式如下:

case variable in
pattern1 | pattern2) commands1;;
pattern3) commands2;;
*) default commands;;
esac

例子:

#!/bin/bash
# Using a short case statement
#
case $USER in
rich | christine)
echo "Welcome $USER"
echo "Please enjoy your visit.";;
barbara | tim)
echo "Hi there, $USER"
echo "We're glad you could join us.";;
testing)
echo "Please log out when done with test.";;
*)
echo "Sorry, you are not allowed here."
esac

【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令,linux系統(tǒng),linux,運維,服務器,bash
如果文章有幫助的話,點贊??、收藏?,支持一波,謝謝 ??????文章來源地址http://www.zghlxwxcb.cn/news/detail-599902.html

到了這里,關于【Linux | Shell】結構化命令2 - test命令、方括號測試條件、case命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • SED正則表達式中[方括號]的特殊處理

    今天被這個方括號懵暈了,特此記錄 例如: 去除輸入字符串“1[2.3]4[ab,c]”中的所有方括號和逗號: $ echo \\\"1[2.3]4[ab,c]\\\"|sed -e \\\"s/[,][]//g\\\" 1[2.3]4[ab,c] ? It doesn\\\'t work! 原因:Regular Expressions The right-square-bracket (?\\\']\\\'?) shall lose its special meaning and represent itself in a bracket expression if it oc

    2024年02月14日
    瀏覽(26)
  • 正則表達式中的方括號[]有什么用?

    在正則表達式中,方括號 [] 是用于定義字符集合的元字符。它在正則表達式中有以下作用: 匹配字符集合中的任意一個字符 :方括號中列出的字符,表示在這個位置可以匹配這些字符中的任意一個。例如, [abc] 將匹配任意一個字符是 “a”、“b” 或 “c” 的位置。 指定字

    2024年02月14日
    瀏覽(26)
  • 第五章 結構化設計

    第五章 結構化設計

    一種軟件開發(fā)活動,定義實現(xiàn)需求規(guī)約所需的軟件結構。 結構化設計分為: (1)總體設計:確定系統(tǒng)的整體模塊結構,即系統(tǒng)實現(xiàn)所需要的軟件模塊以及這些模塊之間的調(diào)用關系。 (2)詳細設計:詳細描述模塊。 體系結構設計(MSD) 接口設計 數(shù)據(jù)設計 實現(xiàn)軟件設計的目標對結

    2024年02月08日
    瀏覽(28)
  • elasticsearch結構化查詢

    elasticsearch結構化查詢

    在上一篇中我們介紹了DSL相關的知識,接下來我們將會學習elasticsearch的結構化查詢,同時也實踐一下上一篇的DSL的查詢用法 從《Elasticsearch權威指南》上摘取部分解釋如下: 從上面的定義我們可以看出來結構化查詢最重要的就是是否匹配么人并不是很關心相關性和分值計算。

    2024年02月01日
    瀏覽(30)
  • 【numpy基礎】--結構化

    目前為止,介紹的 numpy 數(shù)組基本都是關于數(shù)值的,其實, numpy 本身就是一個用于數(shù)值計算的基礎庫。 不過,除了數(shù)值計算之外, numpy 也能夠支持 結構化數(shù)組 。 numpy 的數(shù)組為了提高計算性能,要求數(shù)組的數(shù)據(jù)類型要一致。 但是現(xiàn)實情況下,我們經(jīng)常遇到不是純數(shù)值的數(shù)組

    2024年02月12日
    瀏覽(29)
  • WPF 界面結構化處理

    WPF 界面結構化處理

    WPF 框架是開源的,但是不能跨平臺,可以使用MAUI,這個框架可以跨平臺,WPF源碼可以在github上下載,下載地址:https://gitbub.com/dotnet/wpf。 框架結構 如圖 XAML:eXtensible Application Markup Language的英文縮寫,相應的中文名稱為:可擴展應用程序標記語言。 命名空間 默認 映射:x/

    2024年02月13日
    瀏覽(32)
  • SQL:結構化查詢語言

    SQL:結構化查詢語言

    創(chuàng)建一張表并插入數(shù)據(jù): 以下常用函數(shù)以MySQL為例,其它數(shù)據(jù)庫類似

    2024年02月06日
    瀏覽(30)
  • 結構化流的介紹

    結構化流的介紹

    目錄 有界數(shù)據(jù)和無界數(shù)據(jù) 有界數(shù)據(jù) ?無界數(shù)據(jù) ?結構化流 基本介紹 入門案例 結構化流的編程模型 數(shù)據(jù)結構 數(shù)據(jù)源(Source) File Source Kafka Source(Spark 和 Kafka 整合) 整合Kafka準備工作 從kafka中讀取數(shù)據(jù) 流式處理 批處理 ?數(shù)據(jù)寫入Kafka中 流式處理 批處理 有界數(shù)據(jù) 數(shù)據(jù)有固定的開

    2024年01月15日
    瀏覽(29)
  • elasticsearch結構化查詢(一)

    elasticsearch結構化查詢(一)

    在上一篇中我們介紹了DSL相關的知識,接下來我們將會學習elasticsearch的結構化查詢,同時也實踐一下上一篇的DSL的查詢用法 從《Elasticsearch權威指南》上摘取部分解釋如下: 從上面的定義我們可以看出來結構化查詢最重要的就是是否匹配么人并不是很關心相關性和分值計算。

    2024年02月05日
    瀏覽(29)
  • 結構化流(Structured Streaming)

    結構化流(Structured Streaming)

    有界數(shù)據(jù): 無界數(shù)據(jù): 結構化流是構建在Spark SQL處理引擎之上的一個流式的處理引擎,主要是針對無界數(shù)據(jù)的處理操作。對于結構化流同樣也支持多種語言操作的API:比如 Python Java Scala SQL … Spark的核心是RDD。RDD出現(xiàn)主要的目的就是提供更加高效的離線的迭代計算操作,RDD是針

    2024年01月17日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包