欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell中exit 0和exit 1的區(qū)別有哪些

 更新時(shí)間:2023年11月09日 09:23:22   作者:Locutus  
exit1和exit是shell中的兩個(gè)命令,用于退出當(dāng)前的shell進(jìn)程,本文就來介紹一下shell中exit 0和exit 1有哪些區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下

定義

  • exit 0 :正常運(yùn)行程序并退出程序。使用echo $? 返回0,也就是說調(diào)用環(huán)境認(rèn)為你的程序執(zhí)行正常。

  • exit 1 :非正常運(yùn)行導(dǎo)致退出程序,也可以是其他數(shù)字。系統(tǒng)程序?qū)τ诔绦蜻\(yùn)行錯(cuò)誤是有約定含義的,不為 0 就表示程序運(yùn)行出錯(cuò)。調(diào)用環(huán)境根據(jù)這個(gè)返回值,判斷你的程序運(yùn)行是否正常。

  • return :用于返回值。若在主函數(shù)中,則會退出函數(shù)并返回一個(gè)值。

區(qū)別

  • return是一個(gè)關(guān)鍵字; exit 是一個(gè)函數(shù)

  • return是編程語言級別,它表示調(diào)用堆棧的返回;exit是系統(tǒng)調(diào)用級別,它表示了一個(gè)進(jìn)程的結(jié)束

  • return是函數(shù)的退出(返回);exit是進(jìn)程的退出

  • return是編程語言提供,exit是操作系統(tǒng)提供(或者函數(shù)庫中給出)

  • return用于結(jié)束一個(gè)函數(shù)的執(zhí)行,將函數(shù)的執(zhí)行信息傳出個(gè)其他調(diào)用函數(shù)使用;exit用于退出應(yīng)用程序,刪除進(jìn)程使用的內(nèi)存空間,并將應(yīng)用程序的一個(gè)狀態(tài)返回給OS,這個(gè)狀態(tài)標(biāo)識了應(yīng)用程序的一些運(yùn)行信息,這個(gè)信息和操作系統(tǒng)有關(guān),一般 0 為正常退出,非0 為異常退出

  • 非主函數(shù)中調(diào)用return和exit效果很明顯,但是在main函數(shù)中調(diào)用return和exit的現(xiàn)象就很模糊,多數(shù)情況下現(xiàn)象都是一致的

用途

如果你使用腳本 a.sh 調(diào)用腳本 b.sh ,在 a.sh 中判斷 b.sh 是否正常返回,需要在 b.sh 中相關(guān)位置采用 exit 0 或 exit 1 來標(biāo)識。執(zhí)行完a.sh后,使用echo $?判斷返回值。

在 shell 編程中,要慎用 exit 0。首先必須弄清楚 exit 0 不是 return 0, 區(qū)別在于 return 0用于函數(shù)中,表示函數(shù)執(zhí)行成功并返回 0;而 exit 0 則表示當(dāng)前程序執(zhí)行成功并且直接退出當(dāng)前執(zhí)行腳本或程序。相反,return -1 表示函數(shù)執(zhí)行失敗返回錯(cuò)誤; exit 1 (或大于 1)表示程序執(zhí)行失敗并退出程序。exit 用來返回進(jìn)程結(jié)束時(shí)的狀態(tài),一般在父shell中使用變量 $? 來獲取子shell 的退出狀態(tài),判斷子shell是否執(zhí)行成功。

雖然兩者區(qū)別很明顯,也很容易理解,為什么專門要做一下記錄?確實(shí)出現(xiàn)了這樣的一個(gè)錯(cuò)誤,本應(yīng)是在子shell中執(zhí)行使用 exit 0 和 exit 1 的函數(shù)接口,父shell對其進(jìn)程返回值 { $? } 做判斷操作,結(jié)果有人直接在環(huán)境腳本中加了該函數(shù)接口做判斷,結(jié)果直接導(dǎo)致環(huán)境部署失敗。

注:在接口函數(shù)中使用 return,在需要退出執(zhí)行(子 shell)程序時(shí)使用 exit

#/bin/bash

function check_extern_input() {
	read param
	if [ "${param}" == "exit 0" ];then
		echo "successful exit process right now!"
		exit 0
	elif [ "${param}" == "exit 1" ];then
		echo "failed exit process right now!"
		exit 1
	elif [ "${param}" == "return 0" ];then
		echo "func normal return, process not exit, Enter go on..."
		return 0
	else
		echo "Input again:"
	fi		
}

while true ; do
	check_extern_input
done

 到此這篇關(guān)于shell中exit 0和exit 1有哪些區(qū)別的文章就介紹到這了,更多相關(guān)shell exit 0和exit 1內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux中popen函數(shù)的作用小結(jié)

    Linux中popen函數(shù)的作用小結(jié)

    popen()函數(shù)通過創(chuàng)建一個(gè)管道,調(diào)用fork()產(chǎn)生一個(gè)子進(jìn)程,執(zhí)行一個(gè)shell以運(yùn)行命令來開啟一個(gè)進(jìn)程。這篇文章重點(diǎn)給大家介紹Linux中popen函數(shù)的作用,感興趣的朋友一起看看吧
    2018-05-05
  • shell腳本中執(zhí)行python腳本并接收其返回值的例子

    shell腳本中執(zhí)行python腳本并接收其返回值的例子

    這篇文章主要介紹了shell腳本中執(zhí)行python腳本并接收其返回值的例子,本文重點(diǎn)在于如何接收python腳本的返回值,需要的朋友可以參考下
    2014-08-08
  • 數(shù)據(jù)結(jié)構(gòu) 二叉樹的遞歸與非遞歸

    數(shù)據(jù)結(jié)構(gòu) 二叉樹的遞歸與非遞歸

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu) 二叉樹的遞歸與非遞歸的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Vim命令合集

    Vim命令合集

    這篇文章主要介紹了Vim命令合集的相關(guān)知識,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-10-10
  • Linux/Nginx如何查看搜索引擎蜘蛛爬蟲的行為

    Linux/Nginx如何查看搜索引擎蜘蛛爬蟲的行為

    本文給大家介紹Linux/Nginx如何查看搜索引擎蜘蛛爬蟲的行為,清楚蜘蛛的爬行情況對做SEO優(yōu)化有很大的幫助。需要的朋友通過本篇文章學(xué)習(xí)下吧
    2015-10-10
  • 使用shell腳本一鍵部署LNMP架構(gòu)的方法

    使用shell腳本一鍵部署LNMP架構(gòu)的方法

    這篇文章主要介紹了使用shell腳本一鍵部署LNMP架構(gòu)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Linux 編程之進(jìn)程fork()詳解及實(shí)例

    Linux 編程之進(jìn)程fork()詳解及實(shí)例

    這篇文章主要介紹了Linux 編程之進(jìn)程fork()詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 檢查 Bash 中是否存在輸入?yún)?shù)的問題

    檢查 Bash 中是否存在輸入?yún)?shù)的問題

    這篇文章主要介紹了檢查 Bash 中是否存在輸入?yún)?shù),通過本文向您展示如何檢查輸入?yún)?shù)是否存在或現(xiàn)有參數(shù)的數(shù)量,需要的朋友可以參考下
    2023-06-06
  • awk中實(shí)現(xiàn)ord函數(shù)功能

    awk中實(shí)現(xiàn)ord函數(shù)功能

    這篇文章主要介紹了awk中實(shí)現(xiàn)ord函數(shù)功能,ord函數(shù)用來將字符轉(zhuǎn)化對應(yīng)的ascii碼,本文給出awk中的ord函數(shù)實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-08-08
  • Linux Shell 數(shù)組的創(chuàng)建及使用技巧

    Linux Shell 數(shù)組的創(chuàng)建及使用技巧

    這篇文章主要介紹了Linux Shell 數(shù)組的創(chuàng)建及使用技巧,本文講解了數(shù)組定義、數(shù)組讀取與賦值以及特殊使用,需要的朋友可以參考下
    2015-07-07

最新評論