一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

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

 rongq2007 2021-01-11

最后運(yùn)行的命令的結(jié)束代碼(返回值)即執(zhí)行上一個(gè)指令的返回值 (顯示最后命令的退出狀態(tài)。0表示沒有錯(cuò)誤,其他任何值表明有錯(cuò)誤)

$? 是一個(gè)特殊變量,用來獲取上一個(gè)命令的退出狀態(tài),或者上一個(gè)函數(shù)的返回值。

所謂退出狀態(tài),就是上一個(gè)命令執(zhí)行后的返回結(jié)果。退出狀態(tài)是一個(gè)數(shù)字,一般情況下,大部分命令執(zhí)行成功會返回 0,失敗返回 1,這和C語言的 main() 函數(shù)是類似的。

不過,也有一些命令返回其他值,表示不同類型的錯(cuò)誤。

1) $? 獲取上一個(gè)命令的退出狀態(tài)

編寫下面的代碼,并保存為 test.sh:

#!/bin/bashif [ "$1" == 100 ]thenexit 0  #參數(shù)正確,退出狀態(tài)為0elseexit 1  #參數(shù)錯(cuò)誤,退出狀態(tài)1fi

exit表示退出當(dāng)前 Shell 進(jìn)程,我們必須在新進(jìn)程中運(yùn)行 test.sh,否則當(dāng)前 Shell 會話(終端窗口)會被關(guān)閉,我們就無法取得它的退出狀態(tài)了。

例如,運(yùn)行 test.sh 時(shí)傳遞參數(shù) 100:

[mozhiyan@localhost ~]$ cd demo
[mozhiyan@localhost demo]$ bash ./test.sh 100  #作為一個(gè)新進(jìn)程運(yùn)行
[mozhiyan@localhost demo]$ echo $?
0


再如,運(yùn)行 test.sh 時(shí)傳遞參數(shù) 89:

[mozhiyan@localhost demo]$ bash ./test.sh 89  #作為一個(gè)新進(jìn)程運(yùn)行
[mozhiyan@localhost demo]$ echo $?
1

2) $? 獲取函數(shù)的返回值

編寫下面的代碼,并保存為 test.sh:

#!/bin/bash#得到兩個(gè)數(shù)相加的和function add(){return `expr $1 + $2`}add 23 50  #調(diào)用函數(shù)echo $?  #獲取函數(shù)返回值

運(yùn)行結(jié)果:
73

有 C++、C#、Java 等編程經(jīng)驗(yàn)的讀者請注意:嚴(yán)格來說,Shell 函數(shù)中的 return 關(guān)鍵字用來表示函數(shù)的退出狀態(tài),而不是函數(shù)的返回值;Shell 不像其它編程語言,沒有專門處理返回值的關(guān)鍵字。

以上處理方案在其它編程語言中沒有任何問題,但是在 Shell 中是非常錯(cuò)誤的,Shell 函數(shù)的返回值和其它編程語言大有不同,我們將在《Shell函數(shù)返回值》中展開討論。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲天堂一区在线播放| 欧美一区二区三区播放| 太香蕉久久国产精品视频| 久久精品亚洲精品国产欧美| 亚洲男人的天堂就去爱| 91欧美亚洲精品在线观看| 天堂网中文字幕在线观看| 亚洲综合一区二区三区在线| 一区二区三区18禁看| 国产精品白丝一区二区| 亚洲一区二区三区日韩91| 精品综合欧美一区二区三区| 亚洲女同一区二区另类| 日本欧美在线一区二区三区| 99国产精品国产精品九九| 污污黄黄的成年亚洲毛片 | 国产日产欧美精品大秀| 国产精品激情在线观看| 久久精品亚洲欧美日韩| 亚洲伦片免费偷拍一区| 亚洲精品欧美精品日韩精品| 久久精品国产亚洲av久按摩| 国产爆操白丝美女在线观看| 国产精品免费无遮挡不卡视频| 日本加勒比中文在线观看| 国产精品激情在线观看| 亚洲第一视频少妇人妻系列| 欧美又大又黄刺激视频| 亚洲少妇人妻一区二区| 在线懂色一区二区三区精品| 人妻精品一区二区三区视频免精| 午夜福利视频六七十路熟女| 国产亚洲精品俞拍视频福利区| 久久99青青精品免费| 在线观看日韩欧美综合黄片| 日韩免费成人福利在线| 亚洲熟妇熟女久久精品 | 东京热加勒比一区二区三区| 翘臀少妇成人一区二区| 欧美小黄片在线一级观看| 亚洲中文字幕在线观看四区|