据我所知,新运行的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重置为其原始值。
编辑:
从以前的海报看来,我认为这是不可能的。