Назад | Перейти на главную страницу

Как отключить переменные среды из скрипта

если мне нужно отключить переменную среды из скрипта, она раньше была "получена" как

. ./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:~#