"Видновская средняя школа № 7" - неофициальный сайт
142700, Московская область,
Ленинский район, город Видное,
Жуковский проезд, дом 10
Актуальность подготовки специалистов в области гражданской обороны (ГО) и чрезвычайных ситуаций (ЧС) становится всё более значимой в условиях возрастающих природных и техногенных угроз
Подробнее...Секс-шопы давно перестали быть местами, которые ассоциируются исключительно с тайной и стыдом.
Подробнее...Гражданская оборона является важнейшим элементом обеспечения безопасности населения в условиях чрезвычайных ситуаций (ЧС)
Подробнее...В условиях возрастающих техногенных и природных рисков, обеспечение гражданской обороны (ГО) является одной из ключевых задач национальной безопасности.
Подробнее...Бетонная тротуарная плитка завоевала популярность среди владельцев загородных участков и городских площадей благодаря своей прочности
Подробнее...Мультиметр – это один из ключевых инструментов для диагностики электрических цепей и приборов.
Подробнее...Одним из компонентов воспитательной системы школьного образования является работа своего краеведческого музея, ведущего реальную патриотическую, историко- культурную, нравственную и другую воспитательную деятельность.
Подробнее...ПУБЛИЧНЫЙ ОТЧЕТ 2007-2008 учебный год
Подробнее...«Школа успеха»
Подробнее...АДРЕСОВАНО УЧЕНИКАМ
Подробнее...Программа работы НОУ «Лидер». 2012-2013 год.
Подробнее...ОФИЦИАЛЬНЫЕ ДОКУМЕНТЫ: ДРУГИЕ
Подробнее...
Недавно я проводила рефакторинг установки для разнообразного набора приложений. Это была большая куча образов Docker, которые должны быть гибкими, но стабильными. Некоторые веб-приложения также необходимо перезапускать удобным для пользователя способом, который отображает полезные сообщения об ошибках для разработчиков различной квалификации.
Эта задача потребовала большой работы, но я уверена, что стала лучше разбираться в сценариях bash. Мне легко писать эту статью, потому что я записывала все странные мелочи, которые требовали времени на отладку.
Bash настолько странный, что не все из этих мелочей можно подробно разобрать в одной статье, поэтому в каждом разделе я даю ссылки на статьи или учебные пособия, где все эти моменты подробно расписаны.
Язык программирования, на котором писала ваша бабушка
Bash создан Брайаном Фоксом (легендарный и недооцененный парень) и выпущен в 1989 году как open source замена для Bourne Shell, вышедшей в 1976 году. Его название является аббревиатурой от Bourne Again SHell.
Если вы привыкли писать на любом другом языке программирования, bash (и сценарии оболочки в целом) не будут для вас интуитивно понятными. Синтаксис не запоминающийся, переменные странные, область видимости — полная дичь, и поток управления никогда не делает то, что вы думаете.
Как и в случае с CSS, я перестала бояться писать сценарии курс bash, когда узнала о нем несколько ключевых моментов: как он работает, в чем действительно хорош и как заставить его делать то, что мне нужно. Я также столкнулась с множеством глупых маленьких ошибок, которые мне просто пришлось заучить.
Написание скриптов командной оболочки — это очень весело, если вы овладеете основами! Ничто не заставит вас почувствовать себя более опытным хакером, чем написание дикого однострочника, который запускается с первой попытки.
Примечание: я предполагаю, что вы обладаете некоторыми предварительными знаниями в программировании и сценариях командной оболочки. Если вы только начинаете изучение — вот хороший ресурс для начала. Я предполагаю, что вы, по крайней мере, знаете, как использовать терминал и следующие команды: ls, cd, pwd, cat, grep и написали (или попытались написать) один или два сценария.
Кстати, поскольку эта статья относится к миру Linux и операционных систем, у меня есть примечание для тех, кто занимается этими вопросами дольше меня: нормально (даже рекомендуется!) исправлять меня, если я ошибаюсь, просто будьте вежливы.
Версии
Язык сценариев оболочки, c которым большинство из нас работает в настоящее время, — это версия bash для Mac и Linux, используемая для эмуляции терминала в /bin/bash.
Debian (и, соответственно, Ubuntu и Linux Mint) теперь использует другой, но в основном совместимый язык сценариев оболочки (dash) для системных задач. Прим. переводчика: так утверждает автор статьи, но я везде вижу использование bash.
Вы также можете установить zsh в качестве основной оболочки, который в целом похож на bash, но имеет и отличия.
Из-за всех этих небольших вариаций хорошей идеей будет поместить #!/bin/bash (или какой-либо другой язык сценариев оболочки, который вы хотите использовать) вверху файлов, чтобы указать, что сценарий оболочки должен использовать конкретно этот язык, а не какой-либо еще из установленных на сервере.
Указание языка оболочки в заголовке файла сделает его поведение более предсказуемым. Например, ответы на Stack Overflow обычно предполагают, что вы используете именно bash.
Основы
Давайте сначала рассмотрим несколько фундаментальных вещей.
Сценарии оболочки, по сути, представляют собой текстовые потоки, которые передают данные между собой. Они используют философию Unix, заключающуюся в том, чтобы хорошо выполнять одну задачу и объединять крошечные инструменты в более крупные программы по принципу работы конвейера в промышленности. Результат выполнения каждый инструмента передается на вход следующему по порядку.
Синтаксис
Bash использует нестрогий синтаксис; вы можете использовать точку с запятой в конце строки, если хотите, и отступы не влияют на выполнение кода. В нестрогости синтаксиса кроется ловушка. Синтаксис bash важен и очень специфичен. Вдобавок, по сравнению с другими языками, ошибки в синтаксисе трудно диагностировать.