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

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

 更新時間:2020年05月19日 10:00:56   作者:hongweigg  
這篇文章主要介紹了shell腳本返回值及其使用場景的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

應用場景

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

解決

在被調(diào)用的shell腳本B中返回錯誤代碼,當被調(diào)用的shell腳本B中發(fā)生錯誤時,捕捉該錯誤代碼,然后返回該錯誤代碼,這樣系統(tǒng)就能捕獲被調(diào)用的腳本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內(nèi)建命令使用錯誤(Bash文檔上有說明) 很少看到, 通常情況下退出碼都為1
126 命令調(diào)用不能執(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腳本返回值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 如何利用 tee 命令調(diào)試shell腳本中的管道

    如何利用 tee 命令調(diào)試shell腳本中的管道

    在編寫shell腳本時,調(diào)試是個比較麻煩的事,特別是涉及到多層管道命令的時候,會產(chǎn)生多個中間結果,tee命令的作用是從標準輸入中讀取數(shù)據(jù)寫入標準輸出或文件中,利用它可以從管道中讀取中間結果并寫入本地臨時文件中,通過中間結果可以一步一步的定位到腳本的錯誤
    2021-05-05
  • Linux使用Split命令分割文件與合并的操作方法

    Linux使用Split命令分割文件與合并的操作方法

    Linux split是一個命令行工具,用于將文件分割成多個較小的文件,它可以按照文件大小、行數(shù)或者指定的分割符來進行分割,本文給大家介紹了Linux使用Split命令分割文件與合并的操作方法,需要的朋友可以參考下
    2024-03-03
  • 在Linux與Windows上獲取當前堆棧信息的方法

    在Linux與Windows上獲取當前堆棧信息的方法

    下面小編就為大家?guī)硪黄贚inux與Windows上獲取當前堆棧信息的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • shell實現(xiàn)FizzBuzzWhizz問題示例(拉勾網(wǎng)面試題)

    shell實現(xiàn)FizzBuzzWhizz問題示例(拉勾網(wǎng)面試題)

    這篇文章主要介紹了shell實現(xiàn)FizzBuzzWhizz問題示例(拉勾網(wǎng)面試題),需要的朋友可以參考下
    2014-05-05
  • 阿里云主機一鍵安裝lamp、lnmp環(huán)境的shell腳本分享

    阿里云主機一鍵安裝lamp、lnmp環(huán)境的shell腳本分享

    這篇文章主要介紹了阿里云主機一鍵安裝lamp、lnmp環(huán)境的shell腳本分享,需要的朋友可以參考下
    2014-07-07
  • 詳解Linux下讀取位圖的注意事項

    詳解Linux下讀取位圖的注意事項

    這篇文章主要介紹了詳解Linux下讀取位圖的注意事項的相關資料,需要的朋友可以參考下
    2017-07-07
  • Linux xargs命令詳細介紹

    Linux xargs命令詳細介紹

    這篇文章主要介紹了 Linux xargs命令詳細介紹的相關資料,xargs是給其他命令傳遞參數(shù)的一個過濾器,是構建單行命令的重要組件之一,需要的朋友可以參考下
    2017-01-01
  • linux shell命令的常用快捷鍵

    linux shell命令的常用快捷鍵

    下面是一些shell的常用快捷鍵,快捷鍵玩熟悉了在一定程度上是可以提高工作效率滴
    2013-01-01
  • scp命令詳解(全)

    scp命令詳解(全)

    這篇文章主要介紹了scp命令,scp如何做遠程拷貝,下面小編幫助大家解決有關scp命令相關知識,需要的朋友可以參考下
    2015-08-08
  • Linux通過命令壓縮與解壓縮的方法| tar, tar.gz, tar.bz2

    Linux通過命令壓縮與解壓縮的方法| tar, tar.gz, tar.bz2

    這篇文章主要介紹了Linux通過命令壓縮與解壓縮的方法| tar, tar.gz, tar.bz2,內(nèi)容囊括了打包、壓縮、解壓縮的基本概念,最后通過實例講解,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-04-04

最新評論

丹凤县| 富顺县| 故城县| 湟源县| 常宁市| 岚皋县| 稻城县| 罗江县| 临沭县| 仙桃市| 祁阳县| 深圳市| 湘阴县| 多伦县| 麻栗坡县| 翼城县| 五家渠市| 兴安盟| 元阳县| 四会市| 健康| 汽车| 广河县| 东光县| 阜新| 浦北县| 商都县| 双桥区| 安溪县| 高雄县| 内黄县| 双城市| 洛扎县| 金山区| 宜良县| 山阳县| 鲜城| 营口市| 南溪县| 大关县| 葫芦岛市|