Shell中exit和return的區別

2021-10-12 12:45:31 字數 785 閱讀 9973

1. exit關鍵字

exit命令是shell內建命令,用於退出當前shell程序

可以指定退出狀態n,n的取值範圍是0-255,一般情況下,0表示正常退出,非零表示異常退出。

如果狀態碼是0-255之外的數值,則會被強制轉換為uint8_t型別的數值,比如-1會被轉換為255,256會發生型別寬度截斷,被轉換為0。狀態碼n可以不指定,預設是上一條命令的退出狀態碼。

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的區別

shell指令碼中exit命令使用

exit命令用於退出當前shell,在shell指令碼中可以終止當前指令碼執行。常用方法 格式 exit n 退出shell指令碼,並設定退出碼為n。格式 exit 退出shell指令碼,退出碼為最後乙個命令的退出碼 即 格式 trap commands exit 退出前執行commands指定的命...

Linux 中 exit和exit的區別

linux 中 exit和exit的區別 在linux的標準庫函式中,有一套稱作高階i o的函式,我們熟知的printf fopen fread fwrite都在此列,他們也被稱作緩衝i o。其特徵是對應每乙個開啟的檔案,都存在乙個緩衝區,在記憶體中都有一片緩衝區,每次讀檔案會多讀若干條記錄,這樣下...

exit和exit的區別?

exit終止呼叫程序,但不關閉檔案,不清除輸出快取,也不呼叫出口函式。exit函式將終止呼叫程序。在退出程式之前,所有檔案關閉,緩衝輸出內容 將重新整理定義,並呼叫所有已重新整理的 出口函式 由atexit定義 作為系統呼叫而言,exit和exit是一對孿生兄弟,它們究竟相似到什麼程度,我們可以從l...