我想通过C-shell脚本取消设置所有环境变量。
使用unsetenv *
命令,我可以使用命令行来完成。
我们如何使其在脚本中起作用?
运行脚本时我碰到了undefined identifier issue
。
答案 0 :(得分:0)
来自tcsh(1)
:
unsetenv pattern
Removes all environment variables whose names match pattern.
`unsetenv *' thus removes all environment variables; this is a
bad idea. It is not an error for nothing to be unsetenved.
因此,使用unsetenv *
应该有效。您可能有(可能是较旧的)(t)csh版本不支持此功能?
无论哪种方式,正如手册页上所述,取消设置所有内容可能不是一个好主意。您将需要保留各种变量,例如HOME
,USER
等。更好的方法可能是:
foreach e (`env`)
set name = `echo "$e" | cut -d "=" -f 1`
# Note: this list should be longer.
if ( "$name" != "HOME" ) then
unsetenv "$name"
endif
end