если мне нужно отключить переменную среды из скрипта, она раньше была "получена" как
. ./myscript.sh
или
source ./myscript.sh
Но как мне заставить это работать, если я запускаю этот скрипт из супервизора?
[program:myapp]
command=source /usr/bin/myscript.sh
...
не работает.
Простой пример скрипта (myscript.sh):
#!/bin/bash
unset -v SOME_VAR
Вот и все ...
Обычно вы не выполняете / запускаете / скрипт, используя source
, вместо этого вы сделаете его исполняемым, а затем запустите, используя его путь.
Однако, чтобы конкретно отключить переменную, просто используйте unset
:
$ TEST=foo
$ echo $TEST
foo
$ unset TEST
$ echo $TEST
$
Меня устраивает.
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:~#