最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell中exit和return的區(qū)別講解

 更新時間:2019年04月04日 15:08:14   作者:Dablelv  
今天小編就為大家分享一篇關(guān)于,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

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中,則可以正常運行。

3.exit與return的區(qū)別

  • (1)作用不同。exit用于在程序運行的過程中隨時結(jié)束程序,exit的參數(shù)是返回給OS的。exit是結(jié)束一個進(jìn)程,它將刪除進(jìn)程使用的內(nèi)存空間,同時把錯誤信息返回父進(jìn)程。而return是返回函數(shù)值并退出函數(shù);
  • (2)語義層級不同。return是語言級別的,它表示了調(diào)用堆棧的返回;而exit是系統(tǒng)調(diào)用級別的,它表示了一個進(jìn)程的結(jié)束;
  • (3)使用方法不用。return一般用在函數(shù)方法體內(nèi),exit可以出現(xiàn)在Shell腳本中的任意位置。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 獲取磁盤IO與系統(tǒng)負(fù)載Load的shell腳本

    獲取磁盤IO與系統(tǒng)負(fù)載Load的shell腳本

    本節(jié)介紹的幾段shell腳本,可以用于提取磁盤的I/O信息,系統(tǒng)負(fù)載Load信息等
    2013-08-08
  • 詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)

    詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)

    這篇文章主要介紹了詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)的相關(guān)資料,這里提供了詳細(xì)的實現(xiàn)步驟,需要的朋友可以參考下
    2017-08-08
  • Linux Shell函數(shù)返回值

    Linux Shell函數(shù)返回值

    這篇文章主要介紹了Linux Shell函數(shù)返回值,需要的朋友可以參考下
    2016-11-11
  • Linux下自動刪除過期備份和自動異地備份的腳本

    Linux下自動刪除過期備份和自動異地備份的腳本

    這篇文章主要介紹了Linux下自動刪除過期備份和自動異地備份,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • 在Linux?中使用?pidstat?命令監(jiān)控進(jìn)程性能?的操作方法

    在Linux?中使用?pidstat?命令監(jiān)控進(jìn)程性能?的操作方法

    pidstat是Linux系統(tǒng)中一個用于監(jiān)控各種統(tǒng)計信息的命令行工具,它能夠幫助用戶了解系統(tǒng)中各個進(jìn)程的資源使用情況,如CPU、內(nèi)存、I/O等,本文介紹了如何安裝pidstat,以及如何使用其不同的選項來監(jiān)控進(jìn)程的各種性能指標(biāo),感興趣的朋友一起看看吧
    2024-09-09
  • 在shell腳本中激活conda虛擬環(huán)境的方法總結(jié)

    在shell腳本中激活conda虛擬環(huán)境的方法總結(jié)

    在Anaconda中conda可以理解為一個工具,也是一個可執(zhí)行命令,其核心功能是包管理與環(huán)境管理,下面這篇文章主要給大家介紹了關(guān)于如何在shell腳本中激活conda虛擬環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • find命令的結(jié)果順序是什么

    find命令的結(jié)果順序是什么

    這篇文章主要介紹了find命令的結(jié)果順序是什么,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • shell實現(xiàn)tr刪除替換詳解

    shell實現(xiàn)tr刪除替換詳解

    這篇文章主要介紹了shell實現(xiàn)tr刪除替換詳解,需要的朋友可以參考下
    2014-12-12
  • Linux中popen函數(shù)的作用小結(jié)

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

    popen()函數(shù)通過創(chuàng)建一個管道,調(diào)用fork()產(chǎn)生一個子進(jìn)程,執(zhí)行一個shell以運行命令來開啟一個進(jìn)程。這篇文章重點給大家介紹Linux中popen函數(shù)的作用,感興趣的朋友一起看看吧
    2018-05-05
  • 淺談Linux 二進(jìn)制包安裝MySQL的一些問題

    淺談Linux 二進(jìn)制包安裝MySQL的一些問題

    下面小編就為大家?guī)硪黄獪\談Linux 二進(jìn)制包安裝MySQL的一些問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論

马鞍山市| 承德市| 介休市| 达日县| 南澳县| 兴国县| 八宿县| 阿尔山市| 盐源县| 乾安县| 南乐县| 永清县| 平昌县| 游戏| 宁蒗| 旬邑县| 宜兰县| 安阳市| 思南县| 桃园县| 尉犁县| 沙河市| 黄龙县| 新宁县| 泰宁县| 托克逊县| 怀仁县| 同德县| 雷州市| 会同县| 星子县| 崇仁县| 武山县| 阳原县| 许昌县| 禄丰县| 高邑县| 博兴县| 台州市| 邓州市| 东方市|