欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell Script條件判斷詳解

 更新時間:2024年09月19日 10:04:46   作者:幽月靜語  
ShellScript中,命令執(zhí)行后的返回狀態(tài)可以用于條件判斷,其中0表示成功,1-255表示失敗,重定向操作允許控制命令輸出,包括覆蓋和追加方式,邏輯操作符&&和||用于根據(jù)命令狀態(tài)執(zhí)行邏輯判斷,IF語句則是基于命令的執(zhí)行結(jié)果來分支執(zhí)行不同的代碼塊,支持if、elif和else關(guān)鍵字

Shell Script條件判斷

一、Shell 狀態(tài)和重定向

? shell 在執(zhí)行某個命令的時候,會返回兩個返回值:

? 命令的執(zhí)行結(jié)果

? 命令的執(zhí)行狀態(tài)

? 返回狀態(tài)保存到一個特殊變量:$? ,0表示執(zhí)行狀態(tài)成功。1-255表示執(zhí)行命令不成功。

? Shell 中命令的執(zhí)行返回狀態(tài)可以當(dāng)作一個條件測試表達式:

? 命令返回狀態(tài)為0:真

? 命令返回狀態(tài)為1-255:假

? 輸出重定向

? Shell中如果只想獲取命令的執(zhí)行返回狀態(tài),而不想看命令的執(zhí)行結(jié)果,怎么辦?

? ①覆蓋輸出重定向:>

# 覆蓋重定向
[root@localhost ~]# echo "abc" > abc.txt 
# 查看內(nèi)容
[root@localhost ~]# cat abc.txt
abc

? ②追加輸出重定向:>>

# 追加重定向
[root@localhost ~]# echo "aaa" >> abc.txt
# 查看內(nèi)容
[root@localhost ~]# cat abc.txt
abc
aaa

? ③錯誤信息覆蓋(追加)輸出重定向:2> 和2>>

# 錯誤覆蓋輸出
[root@localhost ~]# ls /opt/myfile &> abc.txt
# 查看內(nèi)容
[root@localhost ~]# cat abc.txt
ls: cannot access /opt/myfile: No such file or directory
# 錯誤追加輸出
[root@localhost ~]# ls /opt/abc.txt &>> abc.txt
# 查看內(nèi)容
[root@localhost ~]# cat abc.txt                
ls: cannot access /opt/myfile: No such file or directory
ls: cannot access /opt/abc.txt: No such file or directory

? ④全部覆蓋(追加)輸出重定向:&> 和&>>

二、Shell邏輯操作符&&,||

? 邏輯與&&和邏輯或||操作符:

? cmd1 && cmd2

? 根據(jù)cmd1的執(zhí)行返回狀態(tài),如果cmd1為真,最后結(jié)果不能確定,cmd2會繼續(xù)執(zhí)行

? 根據(jù)cmd1的執(zhí)行返回狀態(tài),如果cmd1為假,最后結(jié)果已經(jīng)確定為假,cmd2不需執(zhí)行

? cmd1 || cmd2

? 根據(jù)cmd1的執(zhí)行返回狀態(tài),如果cmd1為真,最后結(jié)果已經(jīng)確定為真,cmd2不需執(zhí)行

? 根據(jù)cmd1的執(zhí)行返回狀態(tài),如果cmd1為假,最后結(jié)果不能確定,cmd2會繼續(xù)執(zhí)行

# 創(chuàng)建sh文件
[root@localhost ~]# vi myshell.sh
# 寫入內(nèi)容
#!/bin/bash
file="/opt/myfile/"
[ -d $file ] && echo "$file 已經(jīng)存在"
[ -d $file ] || echo "$file 不存在"
# 運行結(jié)果
[root@localhost ~]# bash myshell.sh
/opt/myfile/ 不存在

三、IF語句 一)Shell IF條件分支語句概述

? 幫助文檔:help if

? 屬于shell中的復(fù)合命令

? 從語法可以看出涉及COMMANDS,在之前的學(xué)習(xí)中已經(jīng)學(xué)習(xí)了不同用途的命令,都可以依據(jù)這些命令的執(zhí)行結(jié)果來判斷條件分支

? 語法:

? if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]… [ else COMMANDS; ] fi

? 中括號是可選的意思

? 分號可以使用換行符替代

? 根據(jù)判斷COMMANDS的退出狀態(tài)選擇:

? COMMANDS成功執(zhí)行:

? then COMMANDS

? COMMANDS執(zhí)行失?。?/p>

? elif COMMANDS

? elif是else if的簡寫,在shell中空白符比較敏感

? else COMMANDS

# 創(chuàng)建sh文件
[root@localhost ~]# vi myshell.sh
# 寫入內(nèi)容
#!/bin/bash
if [ $# -eq 1 ]; then
    echo "接收到一個參數(shù),他是$1"
elif [ $# -ge 2 ]; then
    echo "接受到的參數(shù)大于等于2個,第二個參數(shù)為:$2"
else
    echo "沒有接收到參數(shù)?。?!"
    exit 1
fi
# 不傳遞參數(shù)
[root@localhost ~]# bash myshell.sh
沒有接收到參數(shù)?。?!
# 傳遞一個參數(shù)
[root@localhost ~]# bash myshell.sh abc
接收到一個參數(shù),他是abc
# 傳遞兩個參數(shù)
[root@localhost ~]# bash myshell.sh abc abcd
接受到的參數(shù)大于等于2個,第二個參數(shù)為:abcd

到此這篇關(guān)于Shell Script條件判斷的文章就介紹到這了,更多相關(guān)Shell Script條件判斷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點

    Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點

    這篇文章主要介紹了Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點,需要的朋友可以參考下
    2015-10-10
  • 找出Linux中所有真實用戶的命令詳解

    找出Linux中所有真實用戶的命令詳解

    接觸過 Linux 的小伙伴們都知道在 Linux (或者說類 Unix)中,有三種類型的用戶,超級用戶,系統(tǒng)用戶和普通用戶,那么如何快速找出 Linux 中的真實用戶呢,文中給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • 列出所有Bash Shell內(nèi)置命令的方法示例

    列出所有Bash Shell內(nèi)置命令的方法示例

    大家都知道不同的Shell內(nèi)置命令有所不同,所以下面這篇文章主要給大家介紹了關(guān)于如何列出所有Bash Shell內(nèi)置命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • Linux刪除指定字符串內(nèi)容及以前的字符串內(nèi)容\以后的字符串內(nèi)容(最新推薦)

    Linux刪除指定字符串內(nèi)容及以前的字符串內(nèi)容\以后的字符串內(nèi)容(最新推薦)

    這篇文章主要介紹了Linux刪除指定字符串內(nèi)容及以前的字符串內(nèi)容\以后的字符串內(nèi)容,本文給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Shell(())實現(xiàn)對整數(shù)進行數(shù)學(xué)運算

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

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

    win10下如何運行.sh文件的實現(xiàn)步驟

    這篇文章主要介紹了win10下如何運行.sh文件的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Shell編程中的特殊變量之位置變量介紹

    Shell編程中的特殊變量之位置變量介紹

    這篇文章主要介紹了Shell編程中的特殊變量之位置變量介紹,本文講解了$0、$n、$*、$#這4個特殊變量,需要的朋友可以參考下
    2014-12-12
  • linux shutdown命令詳解

    linux shutdown命令詳解

    Windows 系統(tǒng)自帶一個名為Shutdown.exe的程序,可以用于關(guān)機操作(位置在Windows\System32下),一般情況下Windows系統(tǒng)的關(guān)機都可以通過調(diào)用程序 shutdown.exe來實現(xiàn)的,同時該程序也可以用于終止正在計劃中的關(guān)機操作
    2017-09-09
  • Shell腳本之Expect免交互的實現(xiàn)

    Shell腳本之Expect免交互的實現(xiàn)

    這篇文章主要介紹了Shell腳本之Expect免交互的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Shell腳本實現(xiàn)自動修改IP地址

    Shell腳本實現(xiàn)自動修改IP地址

    這篇文章主要介紹了Shell腳本實現(xiàn)自動修改IP地址,本文直接給出實現(xiàn)代碼,并在代碼中標(biāo)注大量注釋,需要的朋友可以參考下
    2014-10-10

最新評論