日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Shell退出狀態(tài)
每一條 Shell 命令,不管是 Bash 內置命令(例如 cd、echo),還是外部的 Linux 命令(例如 ls、awk),還是自定義的 Shell 函數(shù),當它退出(運行結束)時,都會返回一個比較小的整數(shù)值給調用(使用)它的程序,這就是命令的
退出狀態(tài)(exit statu)。 if 語句的判斷條件,從本質上講,判斷的就是命令的退出狀態(tài)。

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

之所以說這是“慣例”而非“規(guī)定”,是因為也會有例外,比如 diff 命令用來比較兩個文件的不同,對于“沒有差別”的文件返回 0,對于“找到差別”的文件返回 1,對無效文件名返回 2。 在 Shell 中,有多種方式取得命令的退出狀態(tài),其中 $? 是最常見的一種。上節(jié)《Shell if else》中使用了 (()) 進行數(shù)學計算,我們不妨來看一下它的退出狀態(tài)。請看下面的代碼:

#!/bin/bash

read a
read b

(( $a == $b ));

echo "退出狀態(tài):"$?

運行結果1:

26

26

退出狀態(tài):0

運行結果2:

17

39

退出狀態(tài):1

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

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

Shell 邏輯運算符
運算符 使用格式 說明
&& expression1 && expression2 邏輯與運算符,當 expression1 和 expression2 同時成立時,整個表達式才成立。

如果檢測到 expression1 的退出狀態(tài)為 0,就不會再檢測 expression2 了,因為不管 expression2 的退出狀態(tài)是什么,整個表達式必然都是不成立的,檢測了也是多此一舉。

|| expression1 || expression2 邏輯或運算符,expression1 和 expression2 兩個表達式中只要有一個成立,整個表達式就成立。

如果檢測到 expression1 的退出狀態(tài)為 1,就不會再檢測 expression2 了,因為不管 expression2 的退出狀態(tài)是什么,整個表達式必然都是成立的,檢測了也是多此一舉。

! !expression 邏輯非運算符,相當于“取反”的效果。如果 expression 成立,那么整個表達式就不成立;如果 expression 不成立,那么整個表達式就成立。

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

#!/bin/bash

read filename
read url

if test -w $filename && test -n $url
then
    echo $url > $filename
    echo "寫入成功"
else
    echo "寫入失敗"
fi

在 Shell 腳本文件所在的目錄新建一個文本文件并命名為 urls.txt,然后運行 Shell 腳本,運行結果為:

urls.txt↙

http://c.biancheng.net/shell/↙

寫入成功

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

>表示重定向,默認情況下,echo 向控制臺輸出,這里我們將輸出結果重定向到文件。


標題名稱:Shell退出狀態(tài)
當前鏈接:http://m.5511xx.com/article/cdjohpo.html