我正在编写一个脚本,在这种情况下,如果我能看到所有脚本定义的变量名称和值的转储,它真的会帮助我。这是一个例子:
foo="1"
bar="2"
print_script_variables
baz="3"
print_script_variables
这将输出:
foo="1"
bar="2"
foo="1"
bar="2"
baz="3"
类似的东西print_script_variables
存在吗?我觉得解析你正在执行的脚本是一件傻事。
如果这不存在,我只会手动输入一堆echo
命令。这有点烦人,因为我想在进行print_script_variables
故障排除时移动到放置的位置,而不必担心哪些变量会进入和超出范围。
这是一个 bash 脚本,但我在终端中使用 zsh,所以在这两种情况下都可以使用的东西是理想的。
添加到 muru 的回复中,您可以将环境变量的名称存储在脚本的开头,并在调用 print_script_variables 函数时过滤掉环境变量。要以符合 POSIX 的方式执行此操作,请使用 set 实用程序在脚本开头列出所有变量并将其存储在临时文件中。调用函数 print_script_variables 时,使用 diff 过滤掉不需要的变量,即
编辑
由于您需要一种自动执行第一行的方法,您可以使用点(或源)实用程序在脚本开头自动执行该行。您应该将第一行和函数定义存储在一个文件中,例如
print_script_variables
:并在脚本开头获取该文件,如下所示