Спец курс (Автоматизация процесса проектирования)/Лекция 1 (BASH)
Содержание |
Введение
Название BASH -- это аббревиатура от "Bourne-Again Shell" и игра слов от, ставшего уже классикой, "Bourne Shell" Стефена Бурна (Stephen Bourne). В последние годы BASH достиг такой популярности, что стал стандартной командной оболочкой de facto для многих разновидностей UNIX. Большинство принципов программирования на BASH одинаково хорошо применимы и в других командных оболочках, таких как Korn Shell (ksh), от которой Bash позаимствовал некоторые особенности, [2] и C Shell и его производных. (Примечательно, что C Shell не рекомендуется к использованию из-за отдельных проблем, отмеченных Томом Кристиансеном (Tom Christiansen) в октябре 1993 года на Usenet post
Первый скрипт
- Создаем файл first_script.sh
- Даем файлу права на запуск ( chmod 755 first_script.sh )
- Содержимое файла
#!/bin/bash echo "hello world"
Заголовок скрипта и комментарии
В shell-скриптах последовательность #! должна стоять самой первой и задает интерпретатор (sh или bash). Интерпретатор, в свою очередь, воспринимает эту строку как комментарий, поскольку она начинается с символа #. Если в сценарии имеются еще такие же строки, то они воспринимаются как обычный комментарий.
#!/bin/bash
Оператор echo
Для вывода текстовых сообщений или инофрмации в поток вывода используется оператор echo
#!/bin/bash echo "Имя скрипта — \$0" echo "Первый аргумент: \$1" echo "Второй аргумент: \${2}" echo "Семнадцатый аргумент: \${17}" echo "Количество аргументов: \$#"
Переменные
- Переменные -- это одна из основ любого языка программирования. Они учавствуют в арифметических операциях, в синтаксическом анализе строк и совершенно необходимы для абстрагирования каких либо величин с помощью символических имен. Физически переменные представляют собой ни что иное как участки памяти, в которые записана некоторая информация.
- В отличие от большинства других языков программирования, Bash не производит разделения переменных по "типам". По сути, переменные Bash являются строковыми переменными, но, в зависимости от контекста, Bash допускает целочисленную арифметику с переменными. Определяющим фактором здесь служит содержимое переменных.
Бремя отслеживания типа той или иной переменной полностью лежит на плечах программиста. Bash не будет делать это за вас!
- Для объявления переменной нужно указать ее имя и задать значение.
#!/bin/bash # Присваивание значений переменным a=375
- Чтобы использовать значение переменной используют специальный символ $
#!/bin/bash # Присваивание значений переменным и подстановка значений переменных a=375 hello=$a
- Использование пробельных символов с обеих сторон символа "=" присваивания недопустимо.
- Если записать "VARIABLE =value", то интерпретатор попытается выполнить команду "VARIABLE" с параметром "=value".
- Если записать "VARIABLE= value", то интерпретатор попытается установить переменную окружения "VARIABLE" в "" и выполнить команду "value".
- Примечательно, что написание $variable фактически является упрощенной формой написания ${variable}
- Если в значениях переменных встречаются пробелы, то использование кавычек обязательно.
- Неинициализированная переменная хранит "пустое" значение - не ноль!.
- Использование неинициализированных переменных может приводить к ошибкам разного рода в процессе исполнения.