tft每日頭條

 > 生活

 > bash腳本基本語法

bash腳本基本語法

生活 更新时间:2024-12-29 23:12:21

本文講述了在 Bash 腳本中處理錯誤的一些技巧,如何獲取錯誤代碼、在執行腳本時獲得詳細輸出、處理調試功能和錯誤重定向。使用這些技巧,系統管理員可以使他們的日常工作變得輕松。

退出狀态

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

如下是一個簡單例子:

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

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

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

bash腳本基本語法(腳本中的錯誤處理)1

最佳實踐

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

[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

bash腳本基本語法(腳本中的錯誤處理)2

可以編寫如下調試函數,這有助于随時調用它,使用以下示例:

[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.sh Testing Debugging a=2 b=3 c=5 DEBUG set x '[' on == on ']' set x 2 3 = 5

bash腳本基本語法(腳本中的錯誤處理)3

錯誤重定向

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

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

bash腳本基本語法(腳本中的錯誤處理)4

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

[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腳本基本語法(腳本中的錯誤處理)5

總結

本文講述了在 Bash 腳本中處理錯誤的一些技巧,如何獲取錯誤代碼、在執行腳本時獲得詳細輸出、處理調試功能和錯誤重定向。使用這些技巧,系統管理員可以使他們的日常工作變得輕松。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved