Привет. Что-то мало мне было двух выходных, надеюсь, хоть ты отдохнул от информационного шума. Ладно, к делу. В предыдущем посте мы с тобой рассмотрели линтер для Bash. А сегодня познакомимся с утилитой shfmt.

Это не очередной линтер (но тоже умеет орать на ошибки), это утилита для форматирования и синтаксического анализа скриптов. Байда написана на Go и поддерживает оболочки POSIX, Bash и mksh. Так что утилита не ограничена одним лишь Bash.

Ставится из пакетного менеджера:

apt install shfmt

Ну и запускается так же элементарно:

shfmt script.sh

Скармливаем утилите свой прекрасный скрипт, а на экран выводится приятный глазу отформатированный результат. Ну либо не выводится, если встречаются какие-то синтаксические ошибки. Короче, утилита выкашивает весь ненужный трешак, но сохраняет «наверное» работоспособность скрипта.

Чтобы каждый раз не копипастить результат форматирования, у shfmt есть ключ -w. Указав его, результат сразу перезапишется в файл, над которым проводятся эксперименты.

Какого-то жёсткого кодстайла нет, всё настраивается через ключи, например можно указать количество пробелов и т. п. Закидываем в алиасы и пользуемся.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Я обычно использую shfmt для подготовки скриптов для публикации в публичные репозитории GitHub. Чтобы оупенсорс-гуру говном не закидывали на этапе плохого форматирования.

По секрету скажу, что в личных проектах (да и не только) особо никто не придерживается какого-то определённого форматирования. Все пишут как курица лапой нравится, главное, чтобы это работало. Практика плохая, ну лучше плохо, чем вообще никак. Да и девчонки плохих любят.

Страница проекта на GitHub

Вечером про отладку или обфускацию скриптов поговорим. На связи!