最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

bash shell中的if-then語句

 更新時(shí)間:2023年12月26日 09:54:53   作者:恒友成  
bash shell的 if 語句會運(yùn)行 if 后面的那個(gè)命令,如果該命令的退出狀態(tài)碼是0,位于 then 部分的命令就會被執(zhí)行,這篇文章主要介紹了bash shell中的if-then語句,需要的朋友可以參考下

shell中的流控制if語句

簡單的腳本可以只包含順序執(zhí)行的命令,但結(jié)構(gòu)化命令允許根據(jù)條件改變程序執(zhí)行的順序。

if語句

if-then語句

if-then語句格式如下:

if command
then
    commands
fi

在其他編程語言中, if 語句之后的對象是一個(gè)等式,這個(gè)等式的求值結(jié)果為 TRUEFALSEbash shellif 語句會運(yùn)行 if 后面的那個(gè)命令。如果該命令的退出狀態(tài)碼是0,位于 then 部分的命令就會被執(zhí)行。

#!/bin/bash
if pwd
then
        echo "pwd worked"
fi

輸出:

# rob@xx-rob:~$ ./test1
/home/rob
pwd worked

if-then-else 語句

格式:

if command
then
    commands
else
    commands
fi

示例:

v=bin
if grep $v pwd
then
	echo "pwd worked"
else
	echo "cannot find $v"
fi

結(jié)果:

rob@xx-rob:~$ ./test1
# grep: pwd: 沒有那個(gè)文件或目錄
# cannot find bin

if還可以嵌套多層:

if command1
then
command set 1
elif command2
then
command set 2
elif command3
then
command set 3
elif command4
then
command set 4
fi

test命令

bash shell if語句的條件是command,如果要使用常規(guī)的數(shù)值/字符串比較條件,需要使用test命令。

使用test命令的if-then-fi語句:

if test condition
then
commands
fi

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

加入條件時(shí),test 命令會測試該條件。

bash shelltest命令的另外一種寫法是使用[ condition ] 中括號,第一個(gè)方括號之后和第二個(gè)方括號之前必須加上一個(gè)空格,
否則就會報(bào)錯(cuò)。

if中條件判斷的幾個(gè)條件:

  • 判斷變量是否有值if test ${variable}
  • 數(shù)值比較
  • 字符串比較
  • 文件比較

數(shù)值比較

test命令的數(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
#!/bin/bash
if test 100 -le 145; then
	echo "100 is smaller than 145"
fi
v=12
if [ $v -eq 12 ];then
	echo "value is 12"
fi

bash shell只能處理整數(shù),不能使用浮點(diǎn)數(shù)作為判斷條件。

字符串比較

bash shell條件測試還允許比較字符串值,比較字符串比較煩瑣。

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

bash sehll中比較運(yùn)算符需要使用轉(zhuǎn)義,否則會被當(dāng)成重定向運(yùn)算符。

s1="val"
s2="thi"
# 升成`thi`的文件
if [ $s1 > $s2 ];
then
    echo "new file $v2 has been created."
fi
if [ $s1 \> $s2 ];
then
    echo "$s1 is greater than $s2."
fi

比較測試中使用的是標(biāo)準(zhǔn)的ASCII順序,根據(jù)每個(gè)字符的ASCII數(shù)值來決定排序結(jié)果。在比較測試中,大寫字母被認(rèn)為是小于小寫字母的。

文件比較

測試Linux文件系統(tǒng)上文件和目錄的狀態(tài)。

命令描述
-d file檢查 file 是否存在并是一個(gè)目錄
-e file檢查 file 是否存在
-f file檢查 file 是否存在并是一個(gè)文件
-r file檢查 file 是否存在并可讀
-s file檢查 file 是否存在并非空
-w file檢查 file 是否存在并可寫
-x file檢查 file 是否存在并可執(zhí)行
-O file檢查 file 是否存在并屬當(dāng)前用戶所有
-G file檢查 file 是否存在并且默認(rèn)組與當(dāng)前用戶相同
file1 -nt file2檢查 file1 是否比 file2 新
file1 -ot file2檢查 file1 是否比 file2 舊

if-then 語句允許你使用布爾邏輯來組合測試,有兩種布爾運(yùn)算符可用:

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

case語句

在嘗試計(jì)算一個(gè)變量的值,在一組可能的值中尋找特定值,可能不得不寫出很長的 if-then-else語句。case
令會采用列表格式來檢查單個(gè)變量的多個(gè)值。

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

一個(gè)例子:

c=1
case $c in
1 | 2) echo "1";;
3) echo "23";;
esac

到此這篇關(guān)于bash shell中的if-then語句的文章就介紹到這了,更多相關(guān)shell if-then語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解 linux mysqldump 導(dǎo)出數(shù)據(jù)庫、數(shù)據(jù)、表結(jié)構(gòu)

    詳解 linux mysqldump 導(dǎo)出數(shù)據(jù)庫、數(shù)據(jù)、表結(jié)構(gòu)

    這篇文章主要介紹了詳解 linux mysqldump 導(dǎo)出數(shù)據(jù)庫、數(shù)據(jù)、表結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • linux每天定時(shí)備份數(shù)據(jù)庫并刪除十天前數(shù)據(jù)詳細(xì)步驟

    linux每天定時(shí)備份數(shù)據(jù)庫并刪除十天前數(shù)據(jù)詳細(xì)步驟

    每天定時(shí)備份數(shù)據(jù)庫需要用到Linux的定時(shí)任務(wù),利用Linux的crondtab 命令。下面通過本文給大家?guī)砹薼inux每天定時(shí)備份數(shù)據(jù)庫并刪除十天前數(shù)據(jù)詳細(xì)步驟,感興趣的朋友一起看看吧
    2018-06-06
  • linux修改文件名的三種方法

    linux修改文件名的三種方法

    我們在使用linux系統(tǒng)過程中為了便于記憶或整理維護(hù),經(jīng)常需要對文件名進(jìn)行修改,下面文章介紹了linux系統(tǒng)的三種修改文件名稱的方式,需要的朋友可以參考下
    2023-09-09
  • 詳解Linux ln 命令

    詳解Linux ln 命令

    Linux 中的文件分為 Hard Link 和 Symbolic Link 兩種。Hard Link 文件又被稱為硬鏈接文件、實(shí)體鏈接文件,Symbolic Link 文件則常被稱為符號鏈接、軟鏈接文件。這篇文章主要介紹了Linux ln 命令 ,需要的朋友可以參考下
    2019-08-08
  • Shell中echo如何輸出顏色字體

    Shell中echo如何輸出顏色字體

    在CentOS/Redhat系統(tǒng)中,可以使用`echo -e`結(jié)合ANSI轉(zhuǎn)義碼來輸出彩色文本,基本格式是`echo -e "\033[樣式;前景色;背景色m文本\033[0m"`,常用顏色碼包括31(紅色)、32(綠色)等,建議定義變量簡化代碼,并注意終端兼容性和非交互式環(huán)境
    2026-03-03
  • Linux常用命令之性能命令

    Linux常用命令之性能命令

    這篇文章主要介紹了Linux常用命令之性能命令,文章講解的很清楚,有對于這方面不了解的同學(xué)可以研究下
    2021-02-02
  • Linux查看系統(tǒng)配置信息的命令詳解

    Linux查看系統(tǒng)配置信息的命令詳解

    Linux操作系統(tǒng)由Linux內(nèi)核和各種外圍程序組成, Linux內(nèi)核是一個(gè)特殊的軟件程序,用于實(shí)現(xiàn)CPU和內(nèi)存分配,進(jìn)程調(diào)度、設(shè)備驅(qū)動等核心操作,本文給大家介紹了Linux查看系統(tǒng)配置信息的命令,需要的朋友可以參考下
    2024-04-04
  • shell進(jìn)階awk命令編排字段使用詳解

    shell進(jìn)階awk命令編排字段使用詳解

    這篇文章主要為大家介紹了shell進(jìn)階awk命令編排字段使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Shell(())實(shí)現(xiàn)對整數(shù)進(jìn)行數(shù)學(xué)運(yùn)算

    Shell(())實(shí)現(xiàn)對整數(shù)進(jìn)行數(shù)學(xué)運(yùn)算

    這篇文章主要介紹了Shell(())實(shí)現(xiàn)對整數(shù)進(jìn)行數(shù)學(xué)運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Linux Shell 腳本編程入門教程

    Linux Shell 腳本編程入門教程

    Linux的Shell種類眾多,常見的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),Shell是用戶與Linux操作系統(tǒng)溝通的橋梁,對本文感興趣的朋友一起看看吧
    2015-11-11

最新評論

白水县| 丁青县| 建德市| 固安县| 亳州市| 日照市| 肃宁县| 札达县| 龙海市| 乌鲁木齐市| 玛纳斯县| 高雄县| 北碚区| 商河县| 拜城县| 武宁县| 中卫市| 龙州县| 河西区| 翁源县| 页游| 治县。| 扎囊县| 明光市| 綦江县| 山阴县| 沅江市| 金秀| 聊城市| 富宁县| 桂林市| 浑源县| 宁化县| 左云县| 元谋县| 永顺县| 陵川县| 南投市| 姜堰市| 竹溪县| 民和|