Re: Несколько вопросов вразброс
а в чем, собственно, проблема? верно сказали выше, правильно так, как удобно. в случае с башем (как и с любым другим, наверно, скриптовым языком) едва ли какой-то иной подход даст выигрыш в скорости (если не наоборот), а вот геморроя добавит, это да.
чем смущают глобальные переменные? если очень хочется, можно добавить флаг read-only для пущей красоты (help set). а парсить $@, переданный в функцию - то еще развлечение. можно на ровном месте запутаться в нумерации, а потом долго ломать голову, что же не так. или же в начале функции опять растаскивать все это дело на переменные (типа var1=$1, var2=$2) - только лишняя головная боль. плюс значения переменных могут содержать пробелы, тут тоже нужно аккуратно.
да, при загрузке переменных из конфига не стоит забывать про ситуацию, когда конфиг отсутствует. для этого можно после "source /.../configfile" заюзать конструкции вида
var=${var:-"defaul"t}
man bash про подобные штуки. данная вещь вернет значение переменной, если оно есть, а если нету - вернет заданный дефолт.
2012-176 21:26 Артём Н. <artiom14@yandex.ru> wrote:
> Небольшой вопрос по скриптам.
> Если у меня есть функция, которая требует много параметров, напрямую
> с ней не связанных (т.е., к примеру, она вызывает вложенные функции),
> нормально ли это - использовать глобальные "константы"?
> Т.е., они, вроде как, не совсем константы: один загружаются, при
> чтении конфига, после чего не меняются.
> Плохо соображаю и не могу выбрать.
> Минус - при их использовании, увеличивается связность.
> Плюс - мне не нужно передавать в функцию 100500 параметров.
> А если мне нужно протестировать функцию, я всегда могу их заменить...
> И не нужно передавать кучу слабосвязанных параметров.
> Вообще, как правильно?
Reply to: