主頁 > 知識庫 > shell腳本返回值及其使用場景的實現(xiàn)

shell腳本返回值及其使用場景的實現(xiàn)

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

應用場景

在一些應用中(比如Jenkins),嵌入了shell腳本,系統(tǒng)通過shell腳本的返回值來判斷執(zhí)行結果,如果返回值非0,則發(fā)生了執(zhí)行錯誤,需要中止執(zhí)行,這在使用單個命令時沒有問題。然而,在shell (A)腳本又調用了shell腳本文件(B )時,當被調用的shell腳本B執(zhí)行過程中發(fā)生了錯誤時,系統(tǒng)不會認為B有問題,而是繼續(xù)往下執(zhí)行。這樣就會掩蓋了問題。

解決

在被調用的shell腳本B中返回錯誤代碼,當被調用的shell腳本B中發(fā)生錯誤時,捕捉該錯誤代碼,然后返回該錯誤代碼,這樣系統(tǒng)就能捕獲被調用的腳本B的錯誤代碼,而及時中止執(zhí)行。

1、實現(xiàn)步驟:

(1)獲取執(zhí)行結果代碼。使用“$?”獲取。

(2)加入執(zhí)行執(zhí)行結果代碼檢測函數(shù),若發(fā)現(xiàn)結果代碼非0,則返回腳本的執(zhí)行代碼。使用“exit [代碼]”表示。

2、示例:

Shell A:

#do something ...
/home/test/B.sh
#do something ...

Shell B(/home/test/B.sh):

check_result()
{
 echo input params:$1

 if [ $1 != 0 ]; then
  echo wahaha
  exit $1
 fi
}

ls /
echo 1.result:$?
check_result $?

cat /xxxyyy
v1=$?
echo 2.result:{v1}
check_result $v1

check_result()為定義的檢測函數(shù),當命令的返回碼非0時,shell腳本停止執(zhí)行,返回代碼。
v1=$? 保存命令執(zhí)行返回碼,其為臨時變量。需要保存留作后用。

附錄:

1、shell 返回碼

表格 D-1. "保留的"退出碼

退出碼的值 含義 例子 注釋
1 通用錯誤 let "var1 = 1/0" 各種各樣的錯誤都可能使用這個退出碼, 比如"除0錯誤"
2 shell內建命令使用錯誤(Bash文檔上有說明) 很少看到, 通常情況下退出碼都為1
126 命令調用不能執(zhí)行 程序或命令的權限是不可執(zhí)行的
127 "command not found" 估計是$PATH不對, 或者是拼寫錯誤
128 exit的參數(shù)錯誤 exit 3.14159 exit只能以整數(shù)作為參數(shù), 范圍是0 - 255(見腳注)
128+n 信號"n"的致命錯誤 kill -9 腳本的$PPID $? 返回137(128 + 9)
130 用Control-C來結束腳本 Control-C是信號2的致命錯誤, (130 = 128 + 2, 見上邊)
255* 超出范圍的退出狀態(tài) exit -1 exit命令只能夠接受范圍是0 - 255的整數(shù)作為參數(shù)

2、shell返回碼與函數(shù)返回碼、命令返回碼的區(qū)別

  • shell返回碼,標識整個腳本的執(zhí)行結果狀態(tài),用“exit 返回碼”表示。
  • 函數(shù)返回碼,標識一個函數(shù)的執(zhí)行結果狀態(tài),用“return 返回碼”表示。
  • 命令返回碼,標識一個命令的執(zhí)行結果狀態(tài),在命令執(zhí)行后,緊跟著獲取返回碼,用"$?"獲取。

到此這篇關于shell腳本返回值及其使用場景的實現(xiàn)的文章就介紹到這了,更多相關shell腳本返回值內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • shell腳本返回值問題的解決
  • Shell中關于處理方法返回值問題詳解
  • Linux Shell函數(shù)返回值
  • Shell中函數(shù)返回值超出問題
  • shell腳本中執(zhí)行python腳本并接收其返回值的例子
  • linux shell自定義函數(shù)(定義、返回值、變量作用域)介紹

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

巨人網(wǎng)絡通訊聲明:本文標題《shell腳本返回值及其使用場景的實現(xiàn)》,本文關鍵詞  shell,腳本,返回,值,及其,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《shell腳本返回值及其使用場景的實現(xiàn)》相關的同類信息!
  • 本頁收集關于shell腳本返回值及其使用場景的實現(xiàn)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章