Re: Несколько вопросов вразброс
30.06.2012 12:08, Artem Chuprina пишет:
> Артём Н. -> debian-russian@lists.debian.org @ Sat, 30 Jun 2012 09:50:07 +0400:
>
> >> Ну, все-таки в шеллах традиционно используют . /path/to/config и
> >> отдельный префикс для "своих" переменных. Зачитывают обычно не в каждой
> >> функции, а один раз на скрипт.
> АН> К чему, в итоге, я и пришёл.
> АН> Ассоциативный массив - это замечательно.
> АН> Но поддерживается только Bash. :-(
> АН> А шелл, по умолчанию, всё-таки dash. Не хочется полагаться на "башизмы".
> АН> И ещё в dash нет $LINENO и $FUNCNAME, что печально... :-(
> Ну, шелл вообще не очень хороший инструмент для создания надежных
> систем. Он не для этого предназначен.
Однако, немалая часть ОС его использует...
Зачем нужна любая система, которая ненадёжна?
Уж, если оффтопить, то по полной. :-)
Что для создания надёжных систем больше всего подходит?
И практически применимо (по опыту)?
> >> Зачастую еще прикрыв проверкой на
> >> определенность переменной вроде
> >> if [ -z "$MY_VAR" ]; then . /path/to/config; fi
> АН> Чтобы пользователь мог переопределить переменные перед запуском скрипта?
> Нет, чтобы решить, что конфиг уже читали.
Типа #ifdef x/#define x? А зачем, если он читается один раз?
> Чтобы пользователь мог переопределить - это надо внутри конфига делать
> подобные проверки. На предмет чего у шеллов (у всех sh-derived) есть
> прекрасная подстановка ${parameter:-word}, чтобы так длинно не писать.
Почему внутри конфига?
Пользователь переопределяет экспортируемую переменную окружения, а в скрипте
проверяется была она определена или нет. В зависимости от этого читается или не
читается конфиг. Просто способ передачи параметров через переменные, а не через
ком. строку.
Reply to: