bash -x 或 set -x

luc*_*ela 4 unix linux bash shell

使用调试或在脚本内部bash -x scriptname.sh使用然后调用它有什么实际区别吗?set -x

根据我个人的经验,我总是使用它bash -x,因为这样我就不必更改脚本,因此侵入性较小。

bash -x是否存在不适合但可以工作的场景set -x

我提出这些问题是因为我总是看到人们set -x在尝试帮助别人调试时提出建议,我想知道为什么不这样做bash -x scriptname.sh。有技术限制吗?

PS:我不是在问这些命令的作用,而是在问它们“如何”执行以及其中一个是否比另一个更好。

关于他们所做的事情:

tha*_*guy 5

我还建议用户set -x不要调试脚本。bash -x

  • 用户完全希望修改脚本来修复错误,因此添加一行不是问题。
  • 您不必知道用户如何运行他们的脚本(可以通过某些构建脚本或 IDE,而不仅仅是./foo在终端中)
  • 您不必确认 shebang,因为#!/bin/bash -eui需要您运行bash -euix file#!/bin/sh需要sh -x file.

但对于我自己呢?是的,我就跑bash -x