shell指令碼執行返回的狀態碼

2021-08-31 21:37:45 字數 1554 閱讀 3363

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

linux下一條命令或乙個程序執行完成會返回乙個乙個狀態碼。

0   ===   成功執行

非0 ===  執行過程中出現異常或非正常退出

在shell指令碼中 最後執行的一條命令將決定整個shell指令碼的狀態. 此外 shell的內部命令exit也可以隨時終止shell指令碼的執行,返回shell指令碼的狀態碼

當shell指令碼執行結束前 的最後乙個命令是不帶引數的exit ,那麼 shell指令碼的最終返回值 就是 exit 語句前一條語句的返回值,根據這個值可以判斷指令碼成功執行與否。

$? 可以檢視 最後一條命令的返回值 該變數可以在shell 指令碼中的任何地方使用.

#! /bin/bashecho "please input the branch you want to compare"read $my_branchfor i in $(cat list)do        git-diff --quiet $my_branch $i    [--quiet 選項的意思是不要輸出比較後各個diff出來的結果]        if [ $? -eq 0 ]        [$? 就是上一條命令執行的狀態碼]        then              echo $i        fidone
不管是在執行什麼樣語言編寫的程式,都需要獲得其被呼叫函式或程式的退出狀態或(及)返回值,以便於我們好根據退出狀態或(及)返回值判斷當前被呼叫的函式或程式的執行結果是否成功等,然後好做進一步的處理,如提示使用者出錯了,還是繼續執行等。

這裡先就退出狀態和返回值做一下名詞解釋:

退出狀態:執行某一函式或者程式之後通過變數」#?」獲得的值;

返回值:執行某一函式(或程式)時該函式(或程式)執行過程中所有的輸出。

在執行完有返回值的函式時,該返回值就是當前函式的退出狀態值,在這種情況下,可以認為兩者是相同的。

如下示例:

#!/bin/bashecho "hello"echo $?    #檢視echo "hello"的退出狀態

#!/bin/bashecho "hello";helloresult=$?;echo "baby";babyresult=$?;echo $helloresultecho $babyresult
退出狀態一般是用來恒量某個函式或程式是否是正常退出。按照約定,返回」0″表示程式正常退出。返回」非0″表示程式非正常退出。被呼叫的函式可以是沒有返回值的,如果是正常的執行完所有的語句,此時也會認為程式是正常完成,退出狀態也會是」0″。

如果被呼叫的函式或程式有使用」return」返回值,那麼」retrun」返回的結果就被認為是程式的退出狀態了,如下示例:

#!/bin/bashfunction hello()helloecho $?
輸出如下:

$ ./t4.shhellobaby255
給我老師的人工智慧教程打call!

Python指令碼介面返回正常,狀態碼405

最近些python介面指令碼時呼叫post介面時返回結果正常,狀態碼卻不對。如下 此介面完成的功能為新增乙個角色,角色新增成功返回角色的id資訊,但是狀態碼為405,405是method not allowed 客戶端請求中的方法被禁止,網上查一堆405解決方法都對不上原因。後向開發請教,一般這種情...

http的狀態返回碼

201 206都表示伺服器成功處理了請求的狀態 說明網頁可以正常訪問。200 成功 伺服器已成功處理了請求。通常,這表示伺服器提供了請求的網頁。201 已建立 請求成功且伺服器已建立了新的資源。202 已接受 伺服器已接受了請求,但尚未對其進行處理。203 非授權資訊 伺服器已成功處理了請求,但返回...

squid返回狀態碼

tcp hit squid發現請求資源的貌似新鮮的拷貝,並將其立即傳送到客戶端。tcp miss squid沒有請求資源的cache拷貝。tcp refersh hit squid發現請求資源的貌似陳舊的拷貝,並傳送確認請求到原始伺服器。原始伺服器返回304 未修改 響應,指示squid的拷貝仍舊是...