显示sh文件中声明的所有变量

时间:2015-09-25 07:05:48

标签: linux bash shell debugging

我有一个test.sh文件,其中包含以下内容

source lib.sh

input=$0

A=aa/bb/cc
B=$A/dd
C=$A/ee

doSomething $B $C

是否可以显示所有变量的值,这样当我读取代码时,我不必逐行跟踪它们的最终值。

就我而言,我的意思是显示

input=$0 
A=aa/bb/cc
B=aa/bb/cc/dd
C=aa/bb/cc/ee

我知道

bash -x test.sh

可以实现这个目标;但我不希望test.sh被执行。 (执行test.sh中的函数会删除磁盘上的一些重要文件。)我只想知道所有变量的值。

1 个答案:

答案 0 :(得分:1)

'干跑'在bash实际上是不可能的。如下所示的情况会是什么?

if some_command; then
  variable=output_1
else
  variable=output_2
fi

为了确定脚本流,您必须执行 some_command ,这可能需要运行一些命令并获取其输出。这将修改您的系统(它将取决于命令)。因此,没有安全的'在不执行bash脚本的情况下执行所需操作的方法。

为了测试您的脚本,必须模拟可以修改系统的命令(通过在开头添加 echo )。这样您就可以运行脚本并查看变量的值。