25.06.2012 15:19, dimas пишет: > а в чем, собственно, проблема? верно сказали выше, правильно так, как удобно. В этом я с вами не соглашусь. Удобно бывает по-разному. Но часто эти "удобства" надо потом читать, к примеру.
> в случае с башем (как и с любым другим, наверно, скриптовым языком) едва ли > какой-то иной подход даст выигрыш > в скорости (если не наоборот) А причём здесь скорость? Скорость, вроде как, к оптимизации относится? В особенности в sh, как мне кажется, она определяется: алгоритмом, скоростью интерпретатора и, вызываемой программы, а к глобальным константам или передаче параметров серьёзного отношения не имеет. > а вот геморроя добавит, это да. Или наоборот. > чем смущают глобальные переменные? если очень хочется, можно добавить флаг > read-only для пущей красоты (help set). О, кстати, точно, константы же есть... Я и забыл. :-) > а парсить $@, переданный в функцию - то еще развлечение. А зачем парсить? Функции не обрабатывают ошибки. Они получают синтаксически правильные параметры. Достаточно их сразу использовать. Если требуется переменное число, делать shift. > можно на ровном месте запутаться в нумерации, а потом долго ломать голову, > что же не так. > или же в начале функции опять растаскивать все это дело на переменные (типа > var1=$1, var2=$2) - только лишняя головная боль. Я делаю так (к примеру): check_deps() # Check for the using executables. # $1..$n - list of executables. { ... # Interfaces. backup_mysql() # $1 - user name; # $2 - password; # $3 - options. { > плюс значения переменных могут содержать пробелы, тут тоже нужно аккуратно. Тесты для функций. Ну и, как правило, кавычки для каждого параметра. > да, при загрузке переменных из конфига не стоит забывать про ситуацию, когда > конфиг отсутствует. > для этого можно после "source /.../configfile" заюзать конструкции вида > var=${var:-"defaul"t} > man bash про подобные штуки. > данная вещь вернет значение переменной, если оно есть, а если нету - вернет > заданный дефолт. Дык, вообще-то про конструкции bash я знаю, тем более, про такие широко используемые. :-) Думаю, при отсутствии конфига, лучше сдыхать с ошибкой. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4fe87bb2.4010...@yandex.ru