1.exit命令
exit命令是Shell內(nèi)建命令,用于退出當(dāng)前Shell進(jìn)程。使用格式如下:
exit [n>]
可以指定退出狀態(tài)n,n的取值范圍是0-255,一般情況下,0表示正常退出,非零表示異常退出。如果狀態(tài)碼是0-255之外的數(shù)值,則會被強(qiáng)制轉(zhuǎn)換為uint8_t類型的數(shù)值,比如-1會被轉(zhuǎn)換為255,256會發(fā)生類型寬度截斷,被轉(zhuǎn)換為0。狀態(tài)碼n可以不指定,默認(rèn)是上一條命令的退出狀態(tài)碼。
關(guān)于狀態(tài)碼值的定義尚未有統(tǒng)一的標(biāo)準(zhǔn),但是結(jié)束程序時隨意的指定一個狀態(tài)碼是一個不好的行為,應(yīng)該使用統(tǒng)一的狀態(tài)碼。這樣便于調(diào)用者更具狀態(tài)碼快速粗略地推斷出被調(diào)的狀態(tài),而不用去查找狀態(tài)碼的具體含義。當(dāng)然實際的狀態(tài)碼值可以自定義,項目中統(tǒng)一即可,但還是推薦使用GNU C的頭文件sysexits.h>中對于狀態(tài)碼的定義。
#define EX_OK 0 /* successful termination */ #define EX__BASE 64 /* base value for error messages */ #define EX_USAGE 64 /* command line usage error */ #define EX_DATAERR 65 /* data format error */ #define EX_NOINPUT 66 /* cannot open input */ #define EX_NOUSER 67 /* addressee unknown */ #define EX_NOHOST 68 /* host name unknown */ #define EX_UNAVAILABLE 69 /* service unavailable */ #define EX_SOFTWARE 70 /* internal software error */ #define EX_OSERR 71 /* system error (e.g., can't fork) */ #define EX_OSFILE 72 /* critical OS file missing */ #define EX_CANTCREAT 73 /* can't create (user) output file */ #define EX_IOERR 74 /* input/output error */ #define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ #define EX_PROTOCOL 76 /* remote error in protocol */ #define EX_NOPERM 77 /* permission denied */ #define EX_CONFIG 78 /* configuration error */ #define EX__MAX 78 /* maximum listed value */
2.return關(guān)鍵字
return是語言級別的一個關(guān)鍵字,用于結(jié)束函數(shù)并返回一個結(jié)果。return不帶參數(shù)時,則會返回函數(shù)體中最后一個命令的返回值。
return也可以用于使用 . 或source的方式包含的子Shell腳本中,可以返回指定的狀態(tài)或者腳本中最后一個命令的exit status。比如如下腳本:
#!/bin/bash if [ $# -ne 1 ] then echo "please input parameter" return 1 fi
上面的腳本如果直接執(zhí)行則會報如下錯誤:
return: can only`return' from a function or sourced script
但是如果使用 . 或souce的方式被包含到父Shell中,則可以正常運(yùn)行。
3.exit與return的區(qū)別
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
標(biāo)簽:西寧 麗江 安康 日喀則 紹興 蚌埠 武威 迪慶
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell中exit和return的區(qū)別講解》,本文關(guān)鍵詞 Shell,中,exit,和,return,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。