中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Bash腳本中處理錯誤的常用方法有哪些

發布時間:2022-01-20 17:51:45 來源:億速云 閱讀:173 作者:柒染 欄目:開發技術

這篇文章主要為大家分析了Bash腳本中處理錯誤的常用方法有哪些的相關知識點,內容詳細易懂,操作細節合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“Bash腳本中處理錯誤的常用方法有哪些”的知識吧。

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

退出狀態

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

如下是一個簡單例子:

[root@localhost ~]# cat myscript.sh#!/bin/bashmkdir learningecho $?

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

[root@localhost ~]# sh myscript.sh0
[root@localhost ~]# sh myscript.shmkdir: cannot create directory ‘learning’: File exists
1
Bash腳本中處理錯誤的常用方法有哪些
Bash 腳本中的錯誤處理Bash 腳本中的錯誤處理

最佳實踐

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

[root@localhost ~]# cat test3.sh#!/bin/bashset -xecho "Hello World!"mkdiir testing

然后運行腳本查看:

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

Bash腳本中處理錯誤的常用方法有哪些 可以編寫如下調試函數,這有助于隨時調用它,使用以下示例:

[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

輸出內容如下:

[root@localhost ~]# sh debug.shTesting Debugging
+ a=2
+ b=3
+ c=5
+ DEBUG set +x
+ '[' on == on ']'+ set +x
2 + 3 = 5
Bash腳本中處理錯誤的常用方法有哪些
Bash 腳本中的錯誤處理Bash 腳本中的錯誤處理

錯誤重定向

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

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

Bash腳本中處理錯誤的常用方法有哪些 大多數時候,很難在腳本中找到確切的行號。要打印帶有錯誤的行號,請使用PS4選項,其中的$LINENO是預定義好的變量。

[root@localhost ~]# cat test3.sh#!/bin/bashPS4='$LINENO: 'set -xecho "Hello World!"mkdiir testing

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

[root@localhost ~]# sh test3.sh5: echo 'Hello World!'Hello World!
6: mkdiir testing
test3.sh: line 6: mkdiir: command not found
Bash腳本中處理錯誤的常用方法有哪些
Bash 腳本中的錯誤處理Bash 腳本中的錯誤處理

關于“Bash腳本中處理錯誤的常用方法有哪些”就介紹到這了,更多相關內容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網站!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荣昌县| 海林市| 阿鲁科尔沁旗| 盐边县| 库车县| 温宿县| 思茅市| 濮阳市| 莆田市| 镇安县| 霍邱县| 习水县| 宁海县| 株洲县| 丹凤县| 武清区| 苍南县| 海口市| 天等县| 北海市| 广州市| 那曲县| 油尖旺区| 闽侯县| 屏南县| 松江区| 乐亭县| 澄江县| 望城县| 南皮县| 苍溪县| 固镇县| 固原市| 平阴县| 贵德县| 武平县| 大荔县| 阜城县| 宁津县| 德格县| 陇西县|