linux shell 脚本调试,调试Bash/Shell脚本的4种方法

跟其他高级语言一样,Bash/Shell脚本也可以进行调试(Debug),学会这些调试技巧对编写和完善脚本有不小的帮助。

在本文中,您将学习一些有用的Bash/Shell脚本调试方法:

如何使用传统技术

如何使用xtrace选项

如何使用其他Bash选项

如何使用trap

linux shell 脚本调试,调试Bash/Shell脚本的4种方法_第1张图片

最有效的调试工具仍然是经过仔细考虑、明智放置的打印语句。 --布莱恩·克尼根(Brian Kernighan),“面向初学者的Unix”(1979年)

使用的软件要求和约定

软件要求和Linux命令行约定

类别

使用的要求,约定或软件版本

系统

任何GNU /Linux发行版

软件

GNU Bash

其他

N/A

约定

#-要求linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令

$-要求linux命令以普通非特权用户身份执行

使用传统技术

即使代码错误很明显,调试代码也可能很棘手。程序员传统上利用诸如调试器和编辑器中的语法突出显示之类的工具来协助解决问题。编写Bash脚本没有什么不同。只需突出显示语法即可使您在编写代码时捕获错误。

一些编程语言附带了调试功能,例如gcc和gdb,它们使您可以逐步执行代码,设置断点,在执行时检查这些点处的所有内容的状态,等等。但是,Bash脚本通常不需要像这样的笨拙方法。 对于Shell脚本来说,仅对代码进行解释,而不是将其编译为二进制文件。

传统编程环境中使用了一些对复杂的Bash脚本有用的技术,例如使用断言。即在某个时间点明确声明条件或事物状态的方式,它们可以实现为一个简短的函数,该函数可以显示时间,行号等,或类似如下代码所示的东西:

$ echo "function_name(): value of \$var is ${var}"

如何使用Bash xtrace选项

在编写Shell脚本时,编程逻辑往往会更短,并且通常包含在单个文件中。因此,我们可以使用一些内置调试选项来查看出了什么问题。要提到的第一个选项可能也是最有用的是-xtrace选项。可以通过使用

你可能感兴趣的:(linux,shell,脚本调试)