LINUX.ORG.RU
ФорумAdmin

как правильно юзать переменные в баш?

 


0

1
┌─[user@debian]─[~]
└──╼ cat /etc/PROFILE
PROFILE='home'
USER_USER='user'
USER_HOME='/home/user'
BASHRC='.bashrc'
HLPR_PRIORITY_LOW='nice -n 19 ionice -c2 -n7'
HLPR_DIR_BAK="${USER_HOME}/media/backup"

потом везде в скриптах подключаю:

source /etc/PROFILE

Вот думаю, правильно ли я делаю? Может есть какой-то другой способ? Дело в том, что нужно юзать эти переменные и из /etc/rc.local(из-под рута) и под юзером в скриптах. Как лучше реализовать доступ к этим переменным?


В скриптах из-под юзера они тебе не нужны — $HOME и $USER есть по умолчанию. Из-под рута — ну да, можно и так.

anonymous
()
Ответ на: комментарий от anonymous

Тут, разве что, возникает вопрос, зачем тебе скрипты, работающие с данными юзера запускать из-под рута. Скорее всего ты делаешь что-то не так. Может тебе там просто sudo -u заюзать из rc-local, дабы скрипты выполнялись уже из-под юзера? Из под рута надо администрировать систему, а не юзерские данные/конфиги.

В общем, лучше уточнить задачу, желательно с примером скрипта.

anonymous
()

В /etc/profile исполняется sh-like сам, когда интерпретатор вызван как основной интерактивный при регистрации в системе (login). Данный файл выполняется до исполнения пользовательских стартовых скриптов. Для того, чтобы эти переменные остались после выполнения этих конкретных файлов, надо их в стартовых объявлять extern. Переменные, которые нужны конкретной задаче надо объявлять в скриптах конкретной задачи. Переопределять всякие HOME можно именно разве что в таких специальных скриптах и то не очень понятно, зачем это может понадобиться. Всевозможные демоны, типа cron, которые вызывают скрипты от некоторого пользователя, должны сами устанавливать общеупотребительные переменные, типа USER/HOME/и т д, так как это именно необходимо, а у самих демонов не может быть интерактивности при их старте. Если задача специфично настроенна на данные, которые должны принадлежать какому-то пользователю, то root лучше и запускать её, предварительно меняя пользователя, в том числе и выполняя процедуры login, если уж так она написана.

vodz ★★★★★
()

Ваще вопрос не ясен. Нравится так - используй так. Я для своих основательных скриптов делаю scriptname.conf, в котором прописаны переменные, ну или в начале самого скрипта.

IPR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.