婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Shell中exit和return的區別講解

Shell中exit和return的區別講解

熱門標簽:武漢語音電銷機器人加盟 地圖標注x是啥意思 輝縣市地圖標注 房產證地圖標注的兩個面積 威海電銷外呼系統好用嗎 北京電銷機器人對市場的影響 同花順電話機器人微信 湖北孝感如何辦理 外呼系統的合法性

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腳本中調用另一個腳本的三種方式講解
  • 使用shell腳本來給mysql加索引的方法
  • 干掉一堆mysql數據庫,僅需這樣一個shell腳本(推薦)
  • linux shell之通過標識測試文件系統屬性的方法示例
  • linux shell中if的各種判斷
  • linux shell之pushd、popd和dirs的使用講解
  • linux shell之控制臺打印各種顏色字體和背景的實現方法
  • shell腳本實現監控某個進程意外停止后拉起進程
  • 使用shell腳本每天對MySQL多個數據庫自動備份的講解
  • 使用shell來發tcp包的方法

標簽:西寧 麗江 安康 日喀則 紹興 蚌埠 武威 迪慶

巨人網絡通訊聲明:本文標題《Shell中exit和return的區別講解》,本文關鍵詞  Shell,中,exit,和,return,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell中exit和return的區別講解》相關的同類信息!
  • 本頁收集關于Shell中exit和return的區別講解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 金昌市| 托克托县| 旌德县| 吉隆县| 新野县| 龙南县| 巴彦淖尔市| 芜湖市| 红桥区| 敖汉旗| 梨树县| 寿阳县| 石河子市| 奎屯市| 长沙市| 佳木斯市| 仲巴县| 广元市| 夹江县| 桓仁| 浮山县| 丰台区| 邛崃市| 和静县| 札达县| 新龙县| 永城市| 临海市| 永宁县| 尖扎县| 阳江市| 鸡泽县| 黄梅县| 泊头市| 监利县| 安新县| 台东县| 沙坪坝区| 石景山区| 萨迦县| 宜君县|