91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Shell中exit和return的區別有哪些

發布時間:2021-04-29 13:57:57 來源:億速云 閱讀:321 作者:小新 欄目:開發技術

這篇文章主要介紹了Shell中exit和return的區別有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1.exit命令

exit命令是Shell內建命令,用于退出當前Shell進程。使用格式如下:

exit [<n>]

可以指定退出狀態n,n的取值范圍是0-255,一般情況下,0表示正常退出,非零表示異常退出。如果狀態碼是0-255之外的數值,則會被強制轉換為uint8_t類型的數值,比如-1會被轉換為255,256會發生類型寬度截斷,被轉換為0。狀態碼n可以不指定,默認是上一條命令的退出狀態碼。

關于狀態碼值的定義尚未有統一的標準,但是結束程序時隨意的指定一個狀態碼是一個不好的行為,應該使用統一的狀態碼。這樣便于調用者更具狀態碼快速粗略地推斷出被調的狀態,而不用去查找狀態碼的具體含義。當然實際的狀態碼值可以自定義,項目中統一即可,但還是推薦使用GNU C的頭文件<sysexits.h>中對于狀態碼的定義。

#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關鍵字

return是語言級別的一個關鍵字,用于結束函數并返回一個結果。return不帶參數時,則會返回函數體中最后一個命令的返回值。

return也可以用于使用 . 或source的方式包含的子Shell腳本中,可以返回指定的狀態或者腳本中最后一個命令的exit status。比如如下腳本:

#!/bin/bash
if [ $# -ne 1 ]
then
 echo "please input parameter"
  return 1
fi

上面的腳本如果直接執行則會報如下錯誤:

return: can only`return' from a function or sourced script

但是如果使用 . 或souce的方式被包含到父Shell中,則可以正常運行。

3.exit與return的區別

  • (1)作用不同。exit用于在程序運行的過程中隨時結束程序,exit的參數是返回給OS的。exit是結束一個進程,它將刪除進程使用的內存空間,同時把錯誤信息返回父進程。而return是返回函數值并退出函數;

  • (2)語義層級不同。return是語言級別的,它表示了調用堆棧的返回;而exit是系統調用級別的,它表示了一個進程的結束;

  • (3)使用方法不用。return一般用在函數方法體內,exit可以出現在Shell腳本中的任意位置。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Shell中exit和return的區別有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

许昌市| 巴楚县| 禄丰县| 彭泽县| 阿坝| 榆社县| 穆棱市| 南丰县| 泌阳县| 杭锦后旗| 呼图壁县| 白玉县| 云南省| 炉霍县| 公安县| 汉阴县| 泉州市| 茂名市| 和平区| 新巴尔虎右旗| 乃东县| 青田县| 上蔡县| 湟源县| 股票| 邹平县| 东安县| 绥德县| 大理市| 康保县| 庐江县| 五常市| 嘉义县| 麻江县| 紫金县| 南通市| 乌海市| 南华县| 尉氏县| 柏乡县| 武冈市|