如何清除所有环境变量

FI-*_*nfo 0 bash shell environment-variables

如果我做:

$ env
Run Code Online (Sandbox Code Playgroud)

它将打印出所有环境变量。有没有一种方法可以删除所有变量,而无需在bash中逐个循环它们?

Jam*_*den 5

是的,但请注意以下几点:

$ unset $(env | awk -F= '{print $1}') && env
bash: env: No such file or directory
Run Code Online (Sandbox Code Playgroud)

env(1)的第二次调用失败,因为PATH已被删除。

一种替代方法是exec -c,从没有环境的子shell执行某些命令。但是,如果您担心环境中有太多东西,一个更好的方法是回头看看多余的东西是从哪里来的,并在那里清理。