如何从脚本中取消设置环境变量

如何从脚本中取消设置环境变量

如果我需要从脚本中取消设置环境变量,它曾经被“来源”为

. ./myscript.sh

或者

source ./myscript.sh

但是,如果我从supervisord启动这个脚本,我该如何让它工作呢?

[program:myapp]
command=source /usr/bin/myscript.sh
...

不起作用。

简单示例脚本(myscript.sh):

#!/bin/bash
unset -v SOME_VAR

就这样 ...

答案1

您通常不会使用 /运行/ 脚本source,而是使其可执行,然后使用它的路径运行它。

但是,要特别取消设置变量,只需使用unset

$ TEST=foo
$ echo $TEST
foo
$ unset TEST
$ echo $TEST

$

答案2

这个对我有用。

root@localhost:~# cat set.sh
hello1=world1
hello2=world2

root@localhost:~# cat unset.sh
unset hello1
unset hello2

root@localhost:~# . set.sh
root@localhost:~# env | grep ^hello
hello1=world1
hello2=world2
root@localhost:~# . unset.sh
root@localhost:~# env | grep ^hello
root@localhost:~#

相关内容