日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Bash腳本中處理錯誤的一些常用的方法

本篇文章將為大家分享一下在 Bash 腳本中處理錯誤的一些常用的方法,如何獲取錯誤代碼、在執(zhí)行腳本時獲得詳細輸出、處理調(diào)試功能和錯誤重定向等,有需要的小伙伴可以參考一下。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比芮城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式芮城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋芮城地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

img

退出狀態(tài)

在 Bash 腳本中,$?將打印退出狀態(tài)。如果返回零,則表示沒有錯誤。如果不為零,結(jié)論就是任務(wù)可能存在一些問題。

如下是一個簡單例子:

[root@localhost ~]# cat myscript.sh
#!/bin/bash
mkdir learning
echo $?

如果運行上述腳本一次,它將打印 0,因為該目錄不存在,因此腳本將創(chuàng)建它。如果第二次運行該腳本,將獲得一個非零值,如下所示:

[root@localhost ~]# sh myscript.sh
0
[root@localhost ~]# sh myscript.sh
mkdir: cannot create directory ‘learning’: File exists
1

Bash 腳本中的錯誤處理Bash 腳本中的錯誤處理

最佳實踐

建議通過將 set -x 命令添加到 shell 腳本來啟用調(diào)試模式,如下所示:

[root@localhost ~]# cat test3.sh
#!/bin/bash
set -x
echo "Hello World!"
mkdiir testing

然后運行腳本查看:

[root@localhost ~]# sh test3.sh
+ echo 'Hello World!'
Hello World!
+ mkdiir testing
test3.sh: line 4: mkdiir: command not found

可以編寫如下調(diào)試函數(shù),這有助于隨時調(diào)用它,使用以下示例:

[root@localhost ~]# cat debug.sh
#!/bin/bash
_DEBUG="on"
function DEBUG()
{
[ "$_DEBUG" == "on" ] && $@
}
DEBUG echo 'Testing Debugging'
DEBUG set -x
a=2
b=3
c=$(( $a + $b ))
DEBUG set +x

輸出內(nèi)容如下:

[root@localhost ~]# sh debug.sh
Testing Debugging
+ a=2
+ b=3
+ c=5
+ DEBUG set +x
+ '[' on == on ']'
+ set +x
2 + 3 = 5

Bash 腳本中的錯誤處理Bash 腳本中的錯誤處理

錯誤重定向

可以使用標準錯誤輸出將所有系統(tǒng)錯誤重定向到自定義文件,標準錯誤可以用數(shù)字 2 表示。在 Bash shell 執(zhí)行它,如下所示:

[root@localhost ~]# mkdir users 2> errors.txt
[root@localhost ~]# cat errors.txt
mkdir: cannot create directory ‘users’: File exists

大多數(shù)時候,很難在腳本中找到確切的行號。要打印帶有錯誤的行號,請使用PS4選項,其中的$LINENO是預(yù)定義好的變量。

[root@localhost ~]# cat test3.sh
#!/bin/bash
PS4='$LINENO: '

set -x
echo "Hello World!"
mkdiir testing

可以在閱讀錯誤時輕松查看行號:

[root@localhost ~]# sh test3.sh
5: echo 'Hello World!'
Hello World!
6: mkdiir testing
test3.sh: line 6: mkdiir: command not found

Bash 腳本中的錯誤處理Bash 腳本中的錯誤處理


文章名稱:Bash腳本中處理錯誤的一些常用的方法
文章URL:http://www.dlmjj.cn/article/djhposp.html