Как гарантировать доступность $BASH_ENV

Проблема решена.

Вот действия, которые я выполнил, прежде чем проблема была решена:

  • sudo ppa-производят-чистку ppa:gnome3-team/gnome3 (для возвращения назад к поддерживаемым пакетам гнома как наутилус... и т.д.),

  • создание каталога:/var/lib/samba и добавление меня к паролям самбы databse (sudo mkdir-p/var/lib/samba && sudo smbpasswd-a myusername

  • sudo pam-auth-update (все модули аутентификации были уже выбраны, таким образом, я просто нажал хорошо).

Поиск и устранение неисправностей здесь: http://ubuntuforums.org/showthread.php?t=2115288

8
22.06.2014, 22:38
2 ответа

Если вы хотите, чтобы все bash скрипты в вашем кронтабе загружали BASH_ENV, установите его на уровне кронтаба.

BASH_ENV=/path/to/startup.bash
12 34 * * * /path/to/bash_script
1 23 1 * * /path/to/other_bash_script

Если вы хотите установить BASH_ENV только для определенной записи, установите его там. Тогда BASH_ENV не будет установлен для кода, указанного в самом кронтабе, но всё равно плохая идея ставить туда что-нибудь сложное.

12 34 * * * export BASH_ENV=/path/to/startup.bash; /path/to/bash_script
1 23 1 * * /path/to/other_bash_script

Если вы хотите, чтобы определенный скрипт всегда загружал какой-нибудь конфигурационный файл, загружайте его прямо изнутри скрипта.

#!/bin/bash
. /path/to/configuration.bash
…
7
27.01.2020, 20:11

BASH_ENV читается только в неинтерактивной оболочке, и только если эта оболочка является bash (и не вызывается под именем sh ], либо). Интерактивная оболочка без входа в систему не ищет $ BASH_ENV :

$ export BASH_ENV=/home/cuonglm/bash-env.sh
$ bash -lci '. test.sh'
QWERTY
$ bash -lc '. test.sh'
BASH_ENV read
QWERTY
$ bash -ci '. test.sh'
QWERTY
$ bash -c '. test.sh'
BASH_ENV read
QWERTY

Не существует стандартного файла, который запускается в неинтерактивной оболочке для пользователя. Вы должны установить его в отдельный файл, а затем указать источник:

bash -c '. ~/.profile; echo 123'

Или вы можете установить его в каком-нибудь общесистемном файле конфигурации, например / etc / environment или /etc/bashrc.bashrc .

4
27.01.2020, 20:11

Теги

Похожие вопросы