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

Shell退出狀態(tài)的使用

 更新時(shí)間:2021年03月01日 09:25:23   投稿:zx  
這篇文章主要介紹了Shell退出狀態(tài)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

每一條 Shell 命令,不管是 Bash 內(nèi)置命令(例如 cd、echo),還是外部的 Linux 命令(例如 ls、awk),還是自定義的 Shell 函數(shù),當(dāng)它退出(運(yùn)行結(jié)束)時(shí),都會(huì)返回一個(gè)比較小的整數(shù)值給調(diào)用(使用)它的程序,這就是命令的退出狀態(tài)(exit statu)。

很多 Linux 命令其實(shí)就是一個(gè)C語言程序,熟悉C語言的讀者都知道,main() 函數(shù)的最后都有一個(gè)return 0,如果程序想在中間退出,還可以使用exit 0,這其實(shí)就是C語言程序的退出狀態(tài)。當(dāng)有其它程序調(diào)用這個(gè)程序時(shí),就可以捕獲這個(gè)退出狀態(tài)。

if 語句的判斷條件,從本質(zhì)上講,判斷的就是命令的退出狀態(tài)。

按照慣例來說,退出狀態(tài)為 0 表示“成功”;也就是說,程序執(zhí)行完成并且沒有遇到任何問題。除 0 以外的其它任何退出狀態(tài)都為“失敗”。

之所以說這是“慣例”而非“規(guī)定”,是因?yàn)橐矔?huì)有例外,比如 diff 命令用來比較兩個(gè)文件的不同,對(duì)于“沒有差別”的文件返回 0,對(duì)于“找到差別”的文件返回 1,對(duì)無效文件名返回 2。

有編程經(jīng)驗(yàn)的讀者請(qǐng)注意,Shell 的這個(gè)部分與你所熟悉的其它編程語言正好相反:在C語言、C++、Java、Python 中,0 表示“假”,其它值表示“真”。

在 Shell 中,有多種方式取得命令的退出狀態(tài),其中 $? 是最常見的一種。上節(jié)《Shell if else》中使用了 (()) 進(jìn)行數(shù)學(xué)計(jì)算,我們不妨來看一下它的退出狀態(tài)。請(qǐng)看下面的代碼:

#!/bin/bash
read a
read b
(( $a == $b ));
echo "退出狀態(tài):"$?

運(yùn)行結(jié)果1:
26
26
退出狀態(tài):0

運(yùn)行結(jié)果2:
17
39
退出狀態(tài):1

退出狀態(tài)和邏輯運(yùn)算符的組合

Shell if 語句的一個(gè)神奇之處是允許我們使用邏輯運(yùn)算符將多個(gè)退出狀態(tài)組合起來,這樣就可以一次判斷多個(gè)條件了。

Shell 邏輯運(yùn)算符

運(yùn)算符 使用格式 說明
&& expression1 && expression2 邏輯與運(yùn)算符,當(dāng) expression1 和 expression2 同時(shí)成立時(shí),整個(gè)表達(dá)式才成立。

如果檢測到 expression1 的退出狀態(tài)為 0,就不會(huì)再檢測 expression2 了,因?yàn)椴还?expression2 的退出狀態(tài)是什么,整個(gè)表達(dá)式必然都是不成立的,檢測了也是多此一舉。
|| expression1 || expression2 邏輯或運(yùn)算符,expression1 和 expression2 兩個(gè)表達(dá)式中只要有一個(gè)成立,整個(gè)表達(dá)式就成立。

如果檢測到 expression1 的退出狀態(tài)為 1,就不會(huì)再檢測 expression2 了,因?yàn)椴还?expression2 的退出狀態(tài)是什么,整個(gè)表達(dá)式必然都是成立的,檢測了也是多此一舉。
! !expression 邏輯非運(yùn)算符,相當(dāng)于“取反”的效果。如果 expression 成立,那么整個(gè)表達(dá)式就不成立;如果 expression 不成立,那么整個(gè)表達(dá)式就成立。

【實(shí)例】將用戶輸入的 URL 寫入到文件中。

#!/bin/bash
read filename
read url
if test -w $filename && test -n $url
then
  echo $url > $filename
  echo "寫入成功"
else
  echo "寫入失敗"
fi

在 Shell 腳本文件所在的目錄新建一個(gè)文本文件并命名為 urls.txt,然后運(yùn)行 Shell 腳本,運(yùn)行結(jié)果為:

urls.txt↙
http://jb51.net/shell/
寫入成功

test 是 Shell 內(nèi)置命令,可以對(duì)文件或者字符串進(jìn)行檢測,其中,-w選項(xiàng)用來檢測文件是否存在并且可寫,-n選項(xiàng)用來檢測字符串是否非空。下節(jié)《Shell test》中將會(huì)詳細(xì)講解。

>表示重定向,默認(rèn)情況下,echo 向控制臺(tái)輸出,這里我們將輸出結(jié)果重定向到文件。

到此這篇關(guān)于Shell退出狀態(tài)的使用的文章就介紹到這了,更多相關(guān)Shell退出狀態(tài)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Bash讀取和處理CSV文件的方法

    使用Bash讀取和處理CSV文件的方法

    本文主要介紹了使用Bash讀取和處理CSV文件的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Shell中通配符的具體使用

    Shell中通配符的具體使用

    本文主要介紹了Shell中通配符的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 一天一個(gè)shell命令 linux文本內(nèi)容操作系列-cut命令詳解

    一天一個(gè)shell命令 linux文本內(nèi)容操作系列-cut命令詳解

    這篇文章主要介紹了一天一個(gè)shell命令 linux文本內(nèi)容操作系列-cut命令詳解,需要的朋友可以參考下
    2016-06-06
  • Xshell全局去除提示音圖文方法詳解

    Xshell全局去除提示音圖文方法詳解

    這篇文章主要為大家介紹了Xshell全局去除提示音圖文方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Linux 使用shell腳本處理字符串的實(shí)現(xiàn)

    Linux 使用shell腳本處理字符串的實(shí)現(xiàn)

    這篇文章主要介紹了Linux 使用shell腳本處理字符串的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • linux下ssh安裝與scp命令使用詳解

    linux下ssh安裝與scp命令使用詳解

    這篇文章主要介紹了linux下ssh安裝與scp命令使用詳解的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • Linux之時(shí)鐘中斷詳解

    Linux之時(shí)鐘中斷詳解

    這篇文章主要介紹了Linux之時(shí)鐘中斷詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Linux Shell腳本面試25問集合

    Linux Shell腳本面試25問集合

    這篇文章主要介紹了Linux Shell腳本面試25問,方便需要的朋友
    2015-10-10
  • Shell中調(diào)用、引用、包含另一個(gè)腳本文件的三種方法

    Shell中調(diào)用、引用、包含另一個(gè)腳本文件的三種方法

    這篇文章主要介紹了Shell中調(diào)用、引用、包含另一個(gè)腳本文件的三種方法,需要的朋友可以參考下
    2014-04-04
  • Shell $?獲取函數(shù)返回值或者上一個(gè)命令的退出狀態(tài)

    Shell $?獲取函數(shù)返回值或者上一個(gè)命令的退出狀態(tài)

    這篇文章主要介紹了Shell $?獲取函數(shù)返回值或者上一個(gè)命令的退出狀態(tài),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論

蛟河市| 丰城市| 麟游县| 肥乡县| 江孜县| 临朐县| 福建省| 金门县| 海伦市| 亳州市| 武宁县| 安国市| 米易县| 乐亭县| 施秉县| 四子王旗| 台东市| 泸州市| 康定县| 平山县| 兴业县| 丰原市| 广州市| 汝城县| 隆德县| 额济纳旗| 铜鼓县| 天台县| 江达县| 台中县| 苏尼特左旗| 上犹县| 靖远县| 张家川| 文水县| 加查县| 启东市| 昌平区| 绵阳市| 方山县| 南陵县|