我想删除所有继承的环境变量,你能告诉我怎么做吗?
答案 0 :(得分:2)
要使用GNU C Library删除Linux中的所有环境变量,可以使用clearenv()
。当此功能不可用时(它不在POSIX中),您可以使用environ = NULL
代替。在调用execl()
或任何变体之前执行此操作。
如果您正在调用某个exec()
变体,则可以使用最后一个参数直接使用调用(变体e
)来设置环境。使用空环境执行/bin/csh
的示例:execle("/bin/csh", "-csh", NULL, NULL)
答案 1 :(得分:1)
如果要取消设置所有已定义的环境变量,可以执行以下操作:
for a in $(/usr/bin/env); do
unset $(echo "$a" | /usr/bin/cut -d = -f 1);
done
注意,这也会取消设置PATH
,因此您可能希望在之后使用环境初始化shell。
修改强> 由@opentokix启发的更短版本:
unset $(/usr/bin/env | /usr/bin/cut -d = -f 1 | /usr/bin/xargs)
答案 2 :(得分:0)
unset `env | awk -F= '/^\w/ {print $1}' | xargs`
这可能不是一个好主意,因为它会删除你的路径等。
您可以使用未设置的VARIABLE
取消设置单个变量