看到用于调试的 Bash 变量的扩展吗?

AK4*_*K47 13 bash variable-substitution variable

是否有任何工具/技巧可用于扩展变量以使 bash 代码更易于阅读?

例如,它将转换以下内容:

DIR=/var/tmp
FILE=${DIR}/file
SCRIPT_ROOT=/opt/root
TOOL=${SCRIPT_ROOT}/tool.sh
${TOOL} ${FILE}
Run Code Online (Sandbox Code Playgroud)

到:

DIR=/var/tmp
FILE=/var/tmp/file
SCRIPT_ROOT=/opt/root
TOOL=/opt/root/tool.sh
/opt/root/tool.sh /var/tmp/file
Run Code Online (Sandbox Code Playgroud)
  • 我正在将 BASH 代码转换为 Python 并且阅读 BASH 语法非常乏味。

Joh*_*024 17

在 下运行脚本bash -x

$ bash -x script
+ DIR=/var/tmp
+ FILE=/var/tmp/file
+ SCRIPT_ROOT=/opt/root
+ TOOL=/opt/root/tool.sh
+ /opt/root/tool.sh /var/tmp/file
Run Code Online (Sandbox Code Playgroud)

虽然-x通常用于调试,但它似乎可以满足您的需求。

文档

来自man bash

-x 在执行时打印命令及其参数。