亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

定義

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

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

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

區(qū)別

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

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

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

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

  • return用于結(jié)束一個函數(shù)的執(zhí)行,將函數(shù)的執(zhí)行信息傳出個其他調(diào)用函數(shù)使用;exit用于退出應(yīng)用程序,刪除進程使用的內(nèi)存空間,并將應(yīng)用程序的一個狀態(tài)返回給OS,這個狀態(tài)標識了應(yīng)用程序的一些運行信息,這個信息和操作系統(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 來標識。執(zhí)行完a.sh后,使用echo $?判斷返回值。

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

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

注:在接口函數(shù)中使用 return,在需要退出執(zhí)行(子 shell)程序時使用 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)建一個管道,調(diào)用fork()產(chǎn)生一個子進程,執(zhí)行一個shell以運行命令來開啟一個進程。這篇文章重點給大家介紹Linux中popen函數(shù)的作用,感興趣的朋友一起看看吧
    2018-05-05
  • shell腳本中執(zhí)行python腳本并接收其返回值的例子

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

    這篇文章主要介紹了shell腳本中執(zhí)行python腳本并接收其返回值的例子,本文重點在于如何接收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)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    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)的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Linux 編程之進程fork()詳解及實例

    Linux 編程之進程fork()詳解及實例

    這篇文章主要介紹了Linux 編程之進程fork()詳解及實例的相關(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中實現(xiàn)ord函數(shù)功能

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

    這篇文章主要介紹了awk中實現(xiàn)ord函數(shù)功能,ord函數(shù)用來將字符轉(zhuǎn)化對應(yīng)的ascii碼,本文給出awk中的ord函數(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

最新評論