Linux篇:Linux命令返回值$?

01 前言

今天在寫(xiě)一個(gè)Shell腳本字逗,想通過(guò)上一條命令的執(zhí)行結(jié)果在做判斷赛糟,突然間想不起來(lái)命令返回值的特殊表達(dá)疚沐,上網(wǎng)search后發(fā)現(xiàn)是$?

02 Linux命令返回值$? 簡(jiǎn)介

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

所謂退出狀態(tài),就是上一個(gè)命令執(zhí)行后的返回結(jié)果畏线。

退出狀態(tài)是一個(gè)數(shù)字爷恳,一般情況下,大部分命令執(zhí)行成功會(huì)返回 0象踊,失敗返回 1温亲,這和C語(yǔ)言的 main() 函數(shù)是類(lèi)似的。

不過(guò)杯矩,也有一些命令返回其他值栈虚,表示不同類(lèi)型的錯(cuò)誤。

03 實(shí)例介紹

(1)獲取上一條命令執(zhí)行的返回結(jié)果

[root@dev2] # ls

[root@dev2] # echo $?

0

通過(guò) $? 獲取上一次命令執(zhí)行的結(jié)果史隆,0表示成功魂务,非0表示失敗。

命令行下輸入echo $?可以 顯示返回值

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

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

#!/bin/bash

if["$1" == 100]

then

exit 0? # 參數(shù)正確粘姜,退出狀態(tài)為0

else

exit 1? # 參數(shù)錯(cuò)誤鬓照,退出狀態(tài)1

fi

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

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

[root@dev2 ~]# cd demo

[root@dev2 demo]# bash ./test.sh 100? #作為一個(gè)新進(jìn)程運(yùn)行

[root@dev2 demo]# echo $?

0

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

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

[oot@dev2 demo]# echo $?

1

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

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

#!/bin/bash

# 得到兩個(gè)數(shù)相加的和

function add(){

return`expr $1+ $2`

}

add 23 50 #調(diào)用函數(shù)

echo $? #獲取函數(shù)返回值

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

73

這里需要說(shuō)明一下押蚤,嚴(yán)格來(lái)說(shuō)蔑歌,Shell 函數(shù)中的 return 關(guān)鍵字用來(lái)表示函數(shù)的退出狀態(tài),而不是函數(shù)的返回值揽碘;Shell 不像其它編程語(yǔ)言次屠,沒(méi)有專(zhuān)門(mén)處理返回值的關(guān)鍵字。

以上處理方案在其它編程語(yǔ)言中沒(méi)有任何問(wèn)題雳刺,但是在 Shell 中是非常錯(cuò)誤的劫灶,Shell 函數(shù)的返回值和其它編程語(yǔ)言大有不同,我們將另開(kāi)文章《Shell函數(shù)返回值》中展開(kāi)討論煞烫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末浑此,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子滞详,更是在濱河造成了極大的恐慌凛俱,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件料饥,死亡現(xiàn)場(chǎng)離奇詭異蒲犬,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)岸啡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)原叮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人巡蘸,你說(shuō)我怎么就攤上這事奋隶。” “怎么了悦荒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵唯欣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我搬味,道長(zhǎng)境氢,這世上最難降的妖魔是什么蟀拷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮萍聊,結(jié)果婚禮上问芬,老公的妹妹穿的比我還像新娘。我一直安慰自己寿桨,他們只是感情好此衅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著牛隅,像睡著了一般炕柔。 火紅的嫁衣襯著肌膚如雪酌泰。 梳的紋絲不亂的頭發(fā)上媒佣,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音陵刹,去河邊找鬼默伍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衰琐,可吹牛的內(nèi)容都是我干的也糊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼羡宙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼狸剃!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起狗热,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钞馁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后匿刮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體僧凰,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年熟丸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了训措。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡光羞,死狀恐怖绩鸣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纱兑,我是刑警寧澤呀闻,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站萍启,受9級(jí)特大地震影響总珠,放射性物質(zhì)發(fā)生泄漏屏鳍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一局服、第九天 我趴在偏房一處隱蔽的房頂上張望钓瞭。 院中可真熱鬧,春花似錦淫奔、人聲如沸山涡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鸭丛。三九已至,卻和暖如春唐责,著一層夾襖步出監(jiān)牢的瞬間鳞溉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工鼠哥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熟菲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親医吊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子既绩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,744評(píng)論 0 10
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,381評(píng)論 0 5
  • 1.命令格式:ifconfig [網(wǎng)絡(luò)設(shè)備] [參數(shù)] 2.命令功能: ifconfig 命令用來(lái)查看和配置網(wǎng)絡(luò)設(shè)...
    Nuuuu閱讀 3,735評(píng)論 0 12
  • Linux習(xí)慣問(wèn)題: 在vim編輯時(shí),按了ctrl + s后,再按ctrl + q就可以繼續(xù)執(zhí)行了。ctrl + ...
    光著腳的鞋閱讀 4,506評(píng)論 0 16
  • 年輕時(shí)是一名不折不扣的"文青"做入。幾曾幻想成為一名詩(shī)人或者作家-----長(zhǎng)發(fā)飄逸,文采飛揚(yáng)章母。但世間很多事并不由...
    高原貓閱讀 146評(píng)論 0 1