требования по оформлению кода
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* постарайтесь не вносить без обсуждения разнобой стилей,
  если есть предметные пожелания по коррекции текущего --
  пишите, обсудим;

* перед тем, как делать существенные переработки уже имеющегося
  кода -- опять же опишите проблему, идею и предполагаемый результат,
  порой могут выясниться непредвиденные последствия;

* документируйте на русском (README) или английском (README.en) языке
  то, что написали или изменили.

рекомендации
~~~~~~~~~~~~

* трезво относитесь ко входным данным и не пренебрегайте кавычками:
  название дистрибутива с пробелом или получение текста ошибки вместо
  ожидаемого вывода команды могут привести к сложнодиагностируемым
  ошибкам; вместе с тем в ряде случаев, где требуется пословная
  обработка значений переменных или раскрытие шаблонов shell (*?[])
  -- кавычки могут оказаться лишними;

* пользуйтесь if [ ... ]; then ...; fi вместо [ ... ] && ...:
  это кажется более громоздким, но текст оказывается более читаемым
  и в т.ч. расширяемым, поскольку между then/else/fi можно спокойно
  добавлять строки; с && проще забыть { ... } или оставить ненулевой
  код возврата при неудаче теста, когда он считается несущественным;

* предпочтительно применение $() вместо `` (особенно при вложенности);

* постарайтесь не вылазить за 80 колонок.