麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > Linux Shell > 正文

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

2020-07-26 23:24:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

應(yīng)用場(chǎng)景

在一些應(yīng)用中(比如Jenkins),嵌入了shell腳本,系統(tǒng)通過(guò)shell腳本的返回值來(lái)判斷執(zhí)行結(jié)果,如果返回值非0,則發(fā)生了執(zhí)行錯(cuò)誤,需要中止執(zhí)行,這在使用單個(gè)命令時(shí)沒(méi)有問(wèn)題。然而,在shell (A)腳本又調(diào)用了shell腳本文件(B )時(shí),當(dāng)被調(diào)用的shell腳本B執(zhí)行過(guò)程中發(fā)生了錯(cuò)誤時(shí),系統(tǒng)不會(huì)認(rèn)為B有問(wèn)題,而是繼續(xù)往下執(zhí)行。這樣就會(huì)掩蓋了問(wèn)題。

解決

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

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

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

(2)加入執(zhí)行執(zhí)行結(jié)果代碼檢測(cè)函數(shù),若發(fā)現(xiàn)結(jié)果代碼非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 /xxxyyyv1=$?echo 2.result:{v1}check_result $v1

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

附錄:

1、shell 返回碼

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

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

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

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

到此這篇關(guān)于shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)shell腳本返回值內(nèi)容請(qǐng)搜索武林網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持武林網(wǎng)!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产在线a | 日日天日日夜日日摸 | 国产精品久久久久久久久久久久久久久久 | 色阁五月 | 中文字幕在线看第二 | 中文字幕国产欧美 | 久久久国产一区二区三区 | 国产一级aaa全黄毛片 | 欧美三级欧美成人高清www | 成人 精品 | 狠狠干精品视频 | 国产精品刺激对白麻豆99 | 日本免费aaa观看 | 欧美久久一区 | www.成人在线 | 国产精品视频一区二区噜噜 | 国产成人小视频在线观看 | 中文字幕专区高清在线观看 | 一边吃奶一边摸下娇喘 | 高清国产免费 | 视频在线91 | 免费在线观看亚洲 | 国产日韩在线观看一区 | 在线观看91精品 | 国产成年人小视频 | 国产日韩亚洲 | www.com超碰 | 成年性羞羞视频免费观看 | 久久久日韩精品一区二区 | 成人免费观看av | 欧美人与牲禽动交精品一区 | 成年免费大片黄在线观看岛国 | 激情在线视频 | 久久性生活免费视频 | 青青国产在线视频 | 久久国产精品小视频 | 国产亚洲精品yxsp | 依人在线视频 | 操嫩草 | 空姐一级毛片 | 国产精品自拍99 |