Написание комментариев в сценариях Bash
При написании сценариев Bash всегда рекомендуется делать код чистым и понятным. Организация кода в блоки, создание отступов, присвоение описательных имен переменных и функциям — вот несколько способов сделать это.
Еще один способ улучшить читаемость вашего кода — использовать комментарии. Комментарий — это понятное для человека объяснение или аннотация, написанная в сценарии оболочки.
Добавление комментариев к вашим сценариям Bash сэкономит вам много времени и усилий, если вы посмотрите на свой код в будущем. Допустим, вы хотите изменить сценарий, написанный несколько месяцев или лет назад. Скорее всего, вы не вспомните, почему вы написали какой-то сложный фрагмент кода, если не добавили комментарий.
Комментарии также помогают другим разработчикам и системным администраторам, которым может потребоваться поддержка скрипта, чтобы понять ваш код и его назначение.
Комментарии используются для объяснения кода. Например, если у вас есть сложное регулярное выражение или подстановка параметров внутри вашего сценария Bash, вы должны написать комментарий, описывающий, что делает код. Комментарии должны быть краткими и по существу. Не объясняйте что-то простое и очевидное для читателя.
В этой статье мы рассмотрим основы написания комментариев в Bash.
Написание комментариев в Bash
Bash игнорирует все, что написано в строке после решетки ( # ). Единственное исключение из этого правила — первая строка скрипта начинается с символа #! символы. Эта последовательность символов называется Shebang и используется для указания операционной системе, какой интерпретатор использовать для анализа остальной части файла.
Комментарии могут быть добавлены в начале строки или встроены в другой код:
Пробел после решетки не является обязательным, но он улучшит читаемость комментария.
Если ваш текстовый редактор поддерживает выделение синтаксиса, комментарии обычно отображаются зеленым цветом.
Комментарии также полезны при тестировании скрипта. Вместо удаления некоторых строк или блоков вы можете закомментировать их:
Многострочные комментарии в Bash
В отличие от большинства языков программирования, Bash не поддерживает многострочные комментарии.
Самый простой способ написать многострочные комментарии в Bash — это добавить отдельные комментарии один за другим:
Использование HereDoc — это хитрость, а не настоящий встроенный способ написания многострочных комментариев Bash. Чтобы избежать проблем, лучше использовать однострочные комментарии.
Выводы
Написание комментариев является хорошей практикой и помогает другим разработчикам, в том числе будущим самим себе, понять сценарий оболочки. В Bash все, что находится после решетки ( # ) и до конца строки, считается комментарием.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Написание комментариев в скриптах Bash
Еще один способ улучшить читабельность вашего кода – использование комментариев. Комментарий – это понятное человеку объяснение или аннотация, написанная в сценарии оболочки.
Добавление комментариев к вашим сценариям Bash сэкономит вам много времени и усилий, если вы посмотрите на свой код в будущем. Допустим, вы хотите изменить сценарий, который вы написали несколько месяцев или лет назад. Скорее всего, вы не вспомните, почему написали какой-то сложный фрагмент кода, если не добавили комментарий.
Комментарии также помогают другим разработчикам и системным администраторам, которым может потребоваться поддержка сценария, чтобы понять ваш код и его назначение.
Комментарии обычно используются для объяснения того, что код не может. Например, если у вас есть сложное регулярное выражение или подстановка параметров внутри вашего Bash-скрипта, вы должны написать комментарий о том, что делает код. Комментарии должны быть краткими и точными. Не объясняйте что-то простое и очевидное для читателя.
В этой статье мы рассмотрим основы написания комментариев на Bash.
Написание комментариев в Bash
Bash игнорирует все, что написано после хеш-метки ( #) в строке. Единственное исключение из этого правила – первая строка в скрипте начинается с #!символов. Эта последовательность символов называется Shebang и используется, чтобы сообщить операционной системе, какой интерпретатор использовать для анализа остальной части файла.
Комментарии могут быть добавлены в начале строки или встроены в другой код:
Пробел после хеш-метки не обязателен, но он улучшит читабельность комментария.
Комментарии также полезны при тестировании скрипта. Вместо удаления некоторых строк или блоков вы можете закомментировать их:
Многострочные комментарии в Bash
В отличие от большинства языков программирования, Bash не поддерживает многострочные комментарии.
Самый простой способ написать многострочные комментарии в Bash – добавить отдельные комментарии один за другим:
Другим вариантом является использование HereDoc. Это тип перенаправления, который позволяет передавать несколько строк ввода в команду. Если блок HereDoc не перенаправлен в команду, он может служить заполнителем многострочных комментариев:
Использование HereDoc – это хак, а не настоящий встроенный способ написания многострочных комментариев Bash. Чтобы избежать каких-либо проблем, вы должны использовать однострочные комментарии.
Заключение
Написание комментариев является хорошей практикой и помогает другим разработчикам, в том числе будущему самому, понять сценарий оболочки. В Bash все после хеш-метки ( #) и до конца строки считается комментарием.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
# — начало комментария в Bash
Для того, чтобы написать программу не требуется знать, что такое комментарии, и даже про то, что они вообще существуют. Но для того, чтобы написать программу, которую могут читать другие, (а не только выполнять компьютер), комментарии нужны, полезны и даже для автора программы. Так как программа пишется конечное количество времени. А после этого, как правило, просто запускается. Но, если в системе что-то поменялось, то иногда требуется внести изменения и в программный код. И вот тогда, правильно и к месту написанные комментарии, помогут быстрее разобраться, как и что работает и где и что нужно дописать, удалить или поправить.
В Bash, как и в любом другом языке программирования предусмотрена возможность оставлять комментарии. Принцип комментирования очень прост: «Всё, что начинается с символа # и до конца строки считается комментарием.»
Не редко можно отрыть программу и узнать о том, кто её написал, с какой целью, когда, какая это версия программы, где можно более прочитать о том, как она работает и для чего предназначена. А также массу полезной (и не очень) информации. =)
Так выглядит обычный комментарий на языке программирования Bash:
Однако, этим полезность комментариев далеко не исчерпывается. Комментарии можно использовать для описания того, что происходит в самом коде, например:
Как видно на примере выше, правильно и к месту расположенные комментарии позволяют быстро разобраться в том, какая переменная за что отвечает и дальше уже читать код программы как нечто осмысленное, а не просто набор команд.
У комментариев есть ещё одна полезная функция, которую часто используют при программировании. Это экранирование кода, который по каким-то причинам не нужно использовать. И тогда это может выглядеть так:
Такой приём позволяет упросить код программы, сократив некоторые проверки, которые могли бы усложнить программу или заметно замедлить её выполнение. А, возможно, автору программы было просто лень писать все проверки и он ввёл режим «ручного управления».
Также комментарии могут пригодиться при отладке программ. Например, для вывода каких-то промежуточных данных на экран. А после того, как программа отлажена и вместо того, чтобы удалить все тестировочные строки, их можно просто закомментировать. Возможно, когда-нибудь это сильно поможет для поиска ошибок или дописывания кода этой программы.
Правильно закомментированная программа — это большое спасибо того, кто с ней работает тому, кто оставил комментарии за экономию времени на работу с ней. Те, кто пытался разобраться в коде чужих программ, меня поймут. =)
Написание комментариев в скриптах Bash
Главное меню » Linux » Написание комментариев в скриптах Bash
Как и любой язык программирования, комментарии в скрипте bash используются для того, чтобы сделать код более понятным. Вы также можете использовать комментарии, чтобы пропустить часть кода при отладке вашего скрипта.
В этом совете bash мы покажем вам три способа добавления комментариев в сценарий оболочки:
Однострочные комментарии в скрипте bash
Любая строка, начинающаяся с ключа # hash/pound, рассматривается как комментарий в bash. Единственным исключением из этого правила является #! который является shebang и используется, чтобы указать, какая оболочка будет использоваться для обработки сценария.
Давайте посмотрим это на примере скрипта bash:
Как видите, в приведенном выше примере есть два однострочных комментария.
Встроенные комментарии в bash-скрипте
Вы также можете добавить встроенные комментарии в скриптах bash. Вместо того, чтобы начинать строку с #, добавьте комментарий, начинающийся с # в конце строки кода.
Мы добавили встроенный комментарий в строку, где была объявлена переменная day. Это говорит о том, что команда date с +%A покажет только текущий день.
Мы удалили другие комментарии, чтобы избежать путаницы.
Многострочные комментарии в скрипте bash
Многострочный или блочный комментарий в bash напрямую невозможен. Вы можете использовать несколько однострочных комментариев, но я знаю, что это не очень удобно, особенно когда вам нужно раскомментировать весь блок кода.
К счастью, есть обходной путь для комментирования нескольких строк в bash, используя здесь документ. Это перенаправление, чтобы обеспечить несколько строк ввода для команды. Когда он не перенаправлен ни на какую команду, его можно использовать для добавления комментариев к блоку.
Если вы запустите приведенный выше скрипт, он напечатает только. До свидания, пока! ». Весь код между
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Bash-скрипты: начало
Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.
Сценарии командной строки — это наборы тех же самых команд, которые можно вводить с клавиатуры, собранные в файлы и объединённые некоей общей целью. При этом результаты работы команд могут представлять либо самостоятельную ценность, либо служить входными данными для других команд. Сценарии — это мощный способ автоматизации часто выполняемых действий.
Итак, если говорить о командной строке, она позволяет выполнить несколько команд за один раз, введя их через точку с запятой:
На самом деле, если вы опробовали это в своём терминале, ваш первый bash-скрипт, в котором задействованы две команды, уже написан. Работает он так. Сначала команда pwd выводит на экран сведения о текущей рабочей директории, потом команда whoami показывает данные о пользователе, под которым вы вошли в систему.
Используя подобный подход, вы можете совмещать сколько угодно команд в одной строке, ограничение — лишь в максимальном количестве аргументов, которое можно передать программе. Определить это ограничение можно с помощью такой команды:
Командная строка — отличный инструмент, но команды в неё приходится вводить каждый раз, когда в них возникает необходимость. Что если записать набор команд в файл и просто вызывать этот файл для их выполнения? Собственно говоря, тот файл, о котором мы говорим, и называется сценарием командной строки.
Как устроены bash-скрипты
Команды оболочки отделяются знаком перевода строки, комментарии выделяют знаком решётки. Вот как это выглядит:
Тут, так же, как и в командной строке, можно записывать команды в одной строке, разделяя точкой с запятой. Однако, если писать команды на разных строках, файл легче читать. В любом случае оболочка их обработает.
Установка разрешений для файла сценария
Попытка запуска файла сценария с неправильно настроенными разрешениями
Сделаем файл исполняемым:
Теперь попытаемся его выполнить:
После настройки разрешений всё работает как надо.
Успешный запуск bash-скрипта
Вывод сообщений
Вот что получится после запуска обновлённого скрипта.
Вывод сообщений из скрипта
Использование переменных
Переменные позволяют хранить в файле сценария информацию, например — результаты работы команд для использования их другими командами.
Нет ничего плохого в исполнении отдельных команд без хранения результатов их работы, но возможности такого подхода весьма ограничены.
Существуют два типа переменных, которые можно использовать в bash-скриптах:
Переменные среды
Иногда в командах оболочки нужно работать с некими системными данными. Вот, например, как вывести домашнюю директорию текущего пользователя:
Использование переменной среды в сценарии
А что если надо вывести на экран значок доллара? Попробуем так:
В подобной ситуации поможет использование управляющего символа, обратной косой черты, перед знаком доллара:
Теперь сценарий выведет именно то, что ожидается.
Использование управляющей последовательности для вывода знака доллара
Пользовательские переменные
В дополнение к переменным среды, bash-скрипты позволяют задавать и использовать в сценарии собственные переменные. Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария.
Как и в случае с системными переменными, к пользовательским переменным можно обращаться, используя знак доллара:
Вот что получится после запуска такого сценария.
Пользовательские переменные в сценарии
Подстановка команд
Одна из самых полезных возможностей bash-скриптов — это возможность извлекать информацию из вывода команд и назначать её переменным, что позволяет использовать эту информацию где угодно в файле сценария.
Сделать это можно двумя способами.
При втором подходе то же самое записывают так:
А скрипт, в итоге, может выглядеть так:
Скрипт, сохраняющий результаты работы команды в переменной
Математические операции
Математические операции в сценарии
Управляющая конструкция if-then
А вот рабочий пример:
В данном случае, если выполнение команды pwd завершится успешно, в консоль будет выведен текст «it works».
Вот что получается после запуска этого скрипта.
В этом примере, если пользователь найден, скрипт выведет соответствующее сообщение. А если найти пользователя не удалось? В данном случае скрипт просто завершит выполнение, ничего нам не сообщив. Хотелось бы, чтобы он сказал нам и об этом, поэтому усовершенствуем код.
Управляющая конструкция if-then-else
Напишем такой скрипт:
Запуск скрипта с конструкцией if-then-else
Ну что же, продолжаем двигаться дальше и зададимся вопросом о более сложных условиях. Что если надо проверить не одно условие, а несколько? Например, если нужный пользователь найден, надо вывести одно сообщение, если выполняется ещё какое-то условие — ещё одно сообщение, и так далее. В подобной ситуации нам помогут вложенные условия. Выглядит это так:
Сравнение чисел
В скриптах можно сравнивать числовые значения. Ниже приведён список соответствующих команд.
В качестве примера опробуем один из операторов сравнения. Обратите внимание на то, что выражение заключено в квадратные скобки.
Вот что выведет эта команда.
Сравнение чисел в скриптах
Значение переменной val1 больше чем 5, в итоге выполняется ветвь then оператора сравнения и в консоль выводится соответствующее сообщение.
Сравнение строк
В сценариях можно сравнивать и строковые значения. Операторы сравнения выглядят довольно просто, однако у операций сравнения строк есть определённые особенности, которых мы коснёмся ниже. Вот список операторов.
Вот пример сравнения строк в сценарии:
В результате выполнения скрипта получим следующее.
Сравнение строк в скриптах
Вот одна особенность сравнения строк, о которой стоит упомянуть. А именно, операторы «>» и « » как команду перенаправления вывода.
Вот как работа с этими операторами выглядит в коде:
Вот результаты работы скрипта.
Сравнение строк, выведенное предупреждение
Обратите внимание на то, что скрипт, хотя и выполняется, выдаёт предупреждение:
Теперь всё работает как надо.
Она отсортирует строки из файла так:
Если его запустить, окажется, что всё наоборот — строчная буква теперь больше прописной.
Команда sort и сравнение строк в файле сценария
В командах сравнения прописные буквы меньше строчных. Сравнение строк здесь выполняется путём сравнения ASCII-кодов символов, порядок сортировки, таким образом, зависит от кодов символов.
Проверки файлов
Пожалуй, нижеприведённые команды используются в bash-скриптах чаще всего. Они позволяют проверять различные условия, касающиеся файлов. Вот список этих команд.
Эти команды, как впрочем, и многие другие рассмотренные сегодня, несложно запомнить. Их имена, являясь сокращениями от различных слов, прямо указывают на выполняемые ими проверки.
Опробуем одну из команд на практике:
Этот скрипт, для существующей директории, выведет её содержимое.
Вывод содержимого директории
Полагаем, с остальными командами вы сможете поэкспериментировать самостоятельно, все они применяются по тому же принципу.
Итоги
Сегодня мы рассказали о том, как приступить к написанию bash-скриптов и рассмотрели некоторые базовые вещи. На самом деле, тема bash-программирования огромна. Эта статья является переводом первой части большой серии из 11 материалов. Если вы хотите продолжения прямо сейчас — вот список оригиналов этих материалов. Для удобства сюда включён и тот, перевод которого вы только что прочли.
Уважаемые читатели! Просим гуру bash-программирования рассказать о том, как они добрались до вершин мастерства, поделиться секретами, а от тех, кто только что написал свой первый скрипт, ждём впечатлений.