我有一个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中的函数会删除磁盘上的一些重要文件。)我只想知道所有变量的值。
答案 0 :(得分:1)
'干跑'在bash实际上是不可能的。如下所示的情况会是什么?
if some_command; then
variable=output_1
else
variable=output_2
fi
为了确定脚本流,您必须执行 some_command ,这可能需要运行一些命令并获取其输出。这将修改您的系统(它将取决于命令)。因此,没有安全的'在不执行bash脚本的情况下执行所需操作的方法。
为了测试您的脚本,必须模拟可以修改系统的命令(通过在开头添加 echo )。这样您就可以运行脚本并查看变量的值。