10 полезных советов для написания эффективных Bash скриптов в Linux

10 полезных советов для написания эффективных bash скриптов в Linux

Рубрики:

Bash, Linux, Утилиты Linux

Метки:

, ,

Сценарии командной строки или скрипты (shell scripting) — это самая простая форма программирования, которую можно выполнять в Linux. По сути, это программа, которую выполняет командная оболочка операционной системы. Умение писать скрипты — это очень важный навык для системного администратора, который нужен для автоматизации задач, разработки новых простых утилит и инструментов.

В этой статье мы дадим Вам 10 советов по написанию эффективных bashскриптов.

Содержание:

  1. Всегда используйте комментарии в скриптах
  2. Настраивайте завершение выполнения скрипта при ошибке
  3. Настраивайте завершение выполнения скрипта при обнаружении необъявленной переменной
  4. Используйте двойные кавычки для ссылки на переменные
  5. Используйте функции в скриптах
  6. Используйте знак = для сравнения строк
  7. Используйте знак $ вместо знаков «
  8. Как объявлять статические переменные с опцией readonly
  9. Используйте верхний регистр для названий переменных среды, нижний — для названий пользовательских переменных
  10. Выполняйте отладку (debugging) скриптов
  11. Выводы

Всегда используйте комментарии в скриптах

Комментарии — это важная составляющая любого кода, которая помогает быстрее разобраться в нем. Вообще, их рекомендуется писать не только в скриптах, но и в исходном коде, написанном на различных языках программирования. Использование комментариев помогает Вам или другому пользователю, читающему скрипт, понять, что делают разные его части. Комментарии начинаются со знака решетки — #.

 

Комментарии в скриптах

Настраивайте завершение выполнения скрипта при ошибке

Так бывает, что bash может продолжать выполнять скрипт, несмотря на сбои в выполнении определенной команды. И это, безусловно, может негативно повлиять на работу остальной части скрипта. При этом финальный результат выполнения сценария может кардинально отличатся от того, который был задуман. Чтобы не допускать этого — мы рекомендуем использовать следующую команду для выхода из скрипта в случае ошибке:

 

Выход при ошибке

Настраивайте завершение выполнения скрипта при обнаружении необъявленной переменной

Также bash может попытаться использовать переменную, не объявленную ранее в коде сценария. Что в конечном счете может привести к ошибке. Чтобы bash завершал выполнение скрипта в такой ситуации — добавьте в код следующую команду:

 

Выход при необъявленной переменной

Используйте двойные кавычки для ссылки на переменные

Кавычки, ограничивающие строки, нужны для предотвращения интерпретации специальных символов, которые могут находиться в строке или в названиях переменных (за исключением некоторых специальных знаков). Использование двойных кавычек при обращении к переменным предотвращает разбиение строк при наличии в них пробелов на слова, а также — другие возможные сбои.

Проделайте пример ниже:

 

Сохраните и закройте файл, затем — запустите его при помощи следующей команды:

 

Двойные кавычки

Используйте функции в скриптах

Функция — фрагмент кода, который определяет собственную область видимости, куда входят входные параметры и переменные, объявленные непосредственно в теле самой функции. То есть это мини-программа внутри большой программы. Скрипт, который разбит на функции, становится более модульным. Такой код проще прочитать и понять, чем длинную последовательность предписаний. Кроме того, каждую отдельную функцию можно скопировать и использовать автономно в других скриптах.

Синтаксис написания функций выглядит так:

 

Использование функций

Также существует возможность написание функций в одну строку. Для этого используйте показанный ниже синтаксис

 

Однострочная функция

Используйте знак = для сравнения строк

Для написания кода с использованием условных операторов Вам понадобится использовать символ сравнения.

Во многих популярных языках программирования (таких как Python, C++, JavaScript и других) сравнение на равенство проверяется двойным знаком «равно» — ==. Однако в сценариях командной строки Линукс для этого используется одинарное равно — =. Например:

 

Сравнение строк

Используйте знак $ вместо знаков «

Существует несколько способов подстановки команд. Вы можете использовать обратные апострофы `command` для заключения команды в них, либо же использовать конструкцию $(command). На сегодняшний рекомендуется использовать именно второй вариант с использованием $. Что подтверждается рекомендациями shellcheck, инструментом для анализа кода скриптов. Например:

 

Использование знака доллара в командах

Объявляйте статические переменные с опцией readonly

Статическая переменная — это переменная, которая не меняется. Встроенная команда readonly используется для пометки переменных, доступных только для чтения (то есть — неизменяемых). Это подразумевает, что изменить ее в будущем уже будет нельзя. Пример использования опции readonly в скрипте:

 

Опция Readonly

Используйте верхний регистр для названий переменных среды, нижний — для названий пользовательских переменных

Все переменные среды bash, такие как HOSTNAME, BASH, GROUPS и другие — следует писать заглавными буквами. Тогда как для именования пользовательских переменных лучше использовать строчные буквы. В коде большого скрипта при использовании множества различных переменных высок риск назвать некоторые из них одинаково, что может привести к неожиданным или даже критическим ошибка. Предлагаем Вам изучить простые примеры корректных названий для переменных:

 

Название переменных

Выполняйте отладку (debugging) скриптов

Отладка — это устранение ошибок в коде. Отладчик — это средство разработки, которое присоединяется к приложению и проверяет код на ошибки. Во время написания скриптов bash с тысячами строк кода поиск ошибок занимает достаточно длительное время и не гарантирует стопроцентного результата. Для нахождения и исправления ошибок перед выполнением скрипта — выполните отладку.

Например, будем использовать следующий код программы:

 

Для запуска программы в режиме отладки используйте следующую команду:

 

Использование отладки

Выводы

Умение работать с bash-скриптами — это очень важный навык. Надеемся, что наши 10 советов были Вам полезны. Мы рассчитываем, что наши рекомендации облегчат Вам обучение работе с Linux, Вы сможете приобрести необходимые навыки и станете уверенным пользователем Linux.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Bash, Linux, Утилиты Linux

Метки:

, ,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню