我想删除所有继承的环境变量,你能告诉我怎么做吗?
问问题
2856 次
3 回答
2
要使用 GNU C 库删除 Linux 中的所有环境变量,您可以使用clearenv()
. 当此功能不可用时(不在 POSIX 中),您可以使用environ = NULL
。在调用execl()
或任何变体之前执行此操作。
如果您正在调用某个变体,您可以使用最后一个参数exec()
直接通过调用(变体结尾)设置环境。使用空环境e
执行的示例:/bin/csh
execle("/bin/csh", "-csh", NULL, NULL)
于 2013-09-10T08:03:05.503 回答
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)
于 2013-09-10T06:13:12.997 回答
0
unset `env | awk -F= '/^\w/ {print $1}' | xargs`
这可能不是一个好主意,因为它会删除您的路径等。
您可以使用 unset VARIABLE 取消设置单个变量
于 2013-09-10T06:11:54.417 回答