显示在sh文件中声明的所有variables

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

source lib.sh input=$0 A=aa/bb/cc B=$A/dd C=$A/ee doSomething $B $C 

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

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

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

我知道

 bash -x test.sh 

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

bash中的“干运行”的概念实际上是不可能的。 例如在以下情况下,输入是什么?

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

为了确定脚本流程,您必须执行some_command ,这可能需要运行一些命令并获取其输出。 这将修改您的系统(这将取决于命令)。 因此,没有“安全”的方式来执行你所需要的而不执行bash脚本。

为了测试你的脚本将不得不模拟可以修改你的系统的命令(例如通过在开始添加回声 )。 这样,您可以运行脚本并查看变量的值。