运行没有环境variables的shell脚本

据我所知,新运行的shell脚本inheritance它的环境variables。 有没有办法阻止呢? (没有variablesinheritance的运行shell)

看来你可以在脚本前面添加env -i ,在运行脚本之前清除环境:

 env -i sh test.sh 

man env

 -i, --ignore-environment start with an empty environment 

不知道你为什么要这样做,但…

一种可能性(虽然看起来相当丑陋):

exec -c $SCRIPT将以空白的环境启动$ SCRIPT。 (请参阅man bashsearchexec \[-cl\] )。

据我所知,答案是“不”。 你可以重写脚本本身的环境variables。 一旦脚本运行完毕,环境variables的值应该切换回原来的值。 您可能需要将该脚本作为subprocess运行:$ this.script.sh&,以避免在单次运行脚本时必须注销shell,以便将环境variables重置为其原始值。

编辑:

从以前的海报看来,我认为这是不可能的。