日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell脚本执行返回的状态码

發布時間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell脚本执行返回的状态码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/MyEyes/archive/2012/01/12/2320529.html

Linux下一條命令或一個進程執行完成會返回一個一個狀態碼。

0 ? === ? 成功執行

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

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

當shell腳本執行結束前 的最后一個命令是不帶參數的exit ,那么 shell腳本的最終返回值 就是 exit 語句前一條語句的返回值,根據這個值可以判斷腳本成功執行與否。

?$? 可以查看 最后一條命令的返回值 該變量可以在shell 腳本中的任何地方使用.

#! /bin/bash echo "please input the branch you want to compare" read $MY_BRANCH for i in $(cat list) dogit-diff --quiet $MY_BRANCH $i [--quiet 選項的意思是不要輸出比較后各個diff出來的結果]if [ $? -eq 0 ] [$? 就是上一條命令執行的狀態碼]then echo $ifi done

?

http://feng.blog.rritw.com/get_exist_status_and_return_value_in_shell.html

?

在Linux Shell中獲取被調用函數的退出狀態和返回值

不管是在執行什么樣語言編寫的程序,都需要獲得其被調用函數或程序的退出狀態或(及)返回值,以便于我們好根據退出狀態或(及)返回值判斷當前被調用的函數或程序的執行結果是否成功等,然后好做進一步的處理,如提示用戶出錯了,還是繼續執行等。
這里先就退出狀態和返回值做一下名詞解釋:
退出狀態:執行某一函數或者程序之后通過變量”#?”獲得的值;
返回值:運行某一函數(或程序)時該函數(或程序)運行過程中所有的輸出。
在執行完有返回值的函數時,該返回值就是當前函數的退出狀態值,在這種情況下,可以認為兩者是相同的。
如下示例:

#!/bin/bash echo "hello" echo $? #查看echo "hello"的退出狀態

“$?”只是表示其緊接著的上一行命令的執行結果,它的值是時刻改變的,如果不立即對獲取的返回結果進行處理,可以將”$?”賦值給一個變量,以便后面使用,看以下示例:

#!/bin/bash echo "hello"; helloResult=$?; echo "baby"; babyResult=$?; echo $helloResult echo $babyResult

退出狀態一般是用來恒量某個函數或程序是否是正常退出。按照約定,返回”0″表示程序正常退出。返回”非0″表示程序非正常退出。被調用的函數可以是沒有返回值的,如果是正常的執行完所有的語句,此時也會認為程序是正常完成,退出狀態也會是”0″。
如果被調用的函數或程序有使用”return”返回值,那么”retrun”返回的結果就被認為是程序的退出狀態了,如下示例:

#!/bin/bash function hello(){echo "Hello ";echo "Baby";return -1 } hello echo $?

輸出如下:

$ ./t4.sh Hello Baby 255

?

總結

以上是生活随笔為你收集整理的shell脚本执行返回的状态码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。