如果我需要从脚本中取消设置环境变量,它曾经被“来源”为
. ./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:~#