Мастер класс по программированию в shell. Part 1.
Цикл этих статеек рассчитан на читателей , имеющих более-менее достаточное понятие о программировании и не впадающих в ступор при виде следующих строк :
if [ $# -ne "$ARGS" ]
Дело в том , что программирование в среде bash идентично всем спосособам составления программ на любом из языков высокого уровня (pascal, C# , PHP , Perl и другим). Но в некоторых случаях есть и исключения. В данной серии постов мы рассмотрим вопросы не о том как научиться программировать , а вопросы эффективного и профессионального составления сценариев для облегчения повседневной работы системного администратора.
Для начала , мы определим для себя законы по которым ‘живут’ операнды и прочие структуры в сценариях на bash.
1. В отличие от большинства других языков программирования, Bash не производит разделения переменных по “типам”. По сути, переменные Bash являются строковыми переменными, но, в зависимости от контекста, Bash допускает целочисленную арифметику с переменными. Определяющим фактором здесь служит содержимое переменных.
2. Кавычки, ограничивающие строки с обеих сторон, служат для предотвращения интерпретации специальных символов, которые могут находиться в строке. (Символ называется “специальным”, если он несет дополнительную смысловую нагрузку, например символ шаблона — *.)
3. Необходимо всегда помнить о различиях между именем переменной и ее значением. Если variable1 — это имя переменной, то $variable1 — это ссылка на ее значение. “Чистые” имена переменных, без префикса $, могут использоваться только при объявлении переменный
4. Так же в сценариях возможно применение сторонних утилит и программ. Например из сценария вызвать скрипт на языке PHP или Perl. Выполнить системные утилиты ls, netstat и других.
