如何找到所有要取消设置的自定义变量和函数?

如何找到所有要取消设置的自定义变量和函数?

在 bash shell 进程中,我到处定义了一些变量和函数。所以他们很难追踪。如何找到所有要取消设置的自定义变量和函数?谢谢。

答案1

不要尝试跟踪您创建的变量和函数。相反,在子 shell 中运行代码。当子 shell 完成时,子 shell 中定义的所有变量和函数都会消失。

在 bash 中,将命令显式放入子 shell 中的一种方法是将命令放入 parens: 内(...)。例如,让我们在子 shell 中定义两个变量和一个函数并执行该函数:

$ ( a=1; b=2; fn() { echo "a=$a b=$b"; }; fn )
a=1 b=2

子 shell 完成后,所有内容都将被删除:

$ fn
bash: fn: command not found

答案2

快速而肮脏:将“空”环境与当前环境进行比较

env -i bash set > baseline
set > now
diff baseline now

答案3

您可以使用 compgen -v 列出 bash 中定义的所有变量,使用 compgen -A function 列出所有函数

相关内容