[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: