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

Спец курс (Автоматизация процесса проектирования)/Лекция 1 (BASH) — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
(Оператор echo)
(Переменные)
Строка 31: Строка 31:
  
 
== Переменные ==
 
== Переменные ==
* В отличие от большинства других языков программирования, Bash не производит разделения переменных по "типам".  
+
* Переменные -- это одна из основ любого языка программирования. Они учавствуют в арифметических операциях, в синтаксическом анализе строк и совершенно необходимы для абстрагирования каких либо величин с помощью символических имен. Физически переменные представляют собой ни что иное как участки памяти, в которые записана некоторая информация.
* По сути, переменные Bash являются строковыми переменными, но, в зависимости от контекста, Bash допускает целочисленную арифметику с переменными.  
+
* В отличие от большинства других языков программирования, Bash не производит разделения переменных по "типам". По сути, переменные Bash являются строковыми переменными, но, в зависимости от контекста, Bash допускает целочисленную арифметику с переменными. Определяющим фактором здесь служит содержимое переменных.
* Определяющим фактором здесь служит содержимое переменных.
+
Бремя отслеживания типа той или иной переменной полностью лежит на плечах программиста. Bash не будет делать это за вас!
* Отсутствие типов -- это и благословение и проклятие.
+
* С одной стороны -- отсутствие типов делает сценарии более гибкими (чтобы повеситься -- достаточно иметь веревку!) и облегчает чтение кода.
+
* С другой -- является источником потенциальных ошибок и поощряет привычку к "неряшливому" программированию.
+
* Бремя отслеживания типа той или иной переменной полностью лежит на плечах программиста. Bash не будет делать это за вас!
+
  
 +
* Для объявления переменной нужно указать ее имя и задать значение.
 +
<source lang="bash">
 +
#!/bin/bash
 +
# Присваивание значений переменным
 +
a=375
 +
</source>
  
 +
* Чтобы использовать значение переменной используют специальный символ '''$'''
 +
<source lang="bash">
 +
#!/bin/bash
 +
# Присваивание значений переменным и подстановка значений переменных
 +
a=375
 +
hello=$a
 +
</source>
 +
 +
* Использование пробельных символов с обеих сторон символа "=" присваивания недопустимо.
 +
* Если записать "VARIABLE =value", то интерпретатор попытается выполнить команду "VARIABLE" с параметром "=value".
 +
* Если записать "VARIABLE= value", то интерпретатор попытается установить переменную окружения "VARIABLE" в "" и выполнить команду "value".
 +
* Примечательно, что написание $variable фактически является упрощенной формой написания ${variable}
 +
* Если в значениях переменных встречаются пробелы, то использование кавычек обязательно.
 +
* Неинициализированная переменная хранит "пустое" значение - не ноль!.
 +
* Использование неинициализированных переменных может приводить к ошибкам разного рода в процессе исполнения.
  
 
== Переменные окружения ==
 
== Переменные окружения ==
 
== Входные параметры ==
 
== Входные параметры ==

Версия 18:31, 4 сентября 2016

Содержание

Введение

Название 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}
  • Если в значениях переменных встречаются пробелы, то использование кавычек обязательно.
  • Неинициализированная переменная хранит "пустое" значение - не ноль!.
  • Использование неинициализированных переменных может приводить к ошибкам разного рода в процессе исполнения.

Переменные окружения

Входные параметры