Bash Scripting: руководство по созданию


Опубликованно 05.02.2019 10:12

Bash Scripting: руководство по созданию

Сценариев Bash scripting используется системные администраторы, программисты, инженеры, научные работники и почти все те, кто регулярно используют системы Linux/Unix. Независимо от того, что делает пользователь и каков его уровень мастерства владения компьютера, он может найти способ использовать Bash scripting. Хотя правильно, они называются shell-скрипты, но большинство программистов называют Bash скрипты.

В качестве интерактивной оболочки-это короткий язык, для запуска и управления компьютером. Как скриптовый язык, это язык для конкретной области управления и представления процессов и файлов. Определение сценария Bash

Bash scripting - интерпретатор командного языка. Это он получает в различных операционных системах и анализатор команд по умолчанию в большинстве систем GNU/Linux. Это аббревиатура от «Bourne Again SHell».

Другие определения: Shell-это макропроцессор, который позволяет выполнить интерактивный или нет интерактивного выполнения заказа. Scripting позволяет настроить автоматическое выполнение команд, которые в противном случае действовали бы в интерактивном режиме.

Bash scripting установлен по умолчанию во многих системах GNU/Linux, поэтому скрипт работает даже без определения в качестве исполнителя. Чтобы узнать, что команда по умолчанию назначают:

$ echo $SHELL /bin/bash.

Существуют и другие оболочки оболочки, такие как Korn, C и многие другие. По этой причине, рекомендуется установить интерпретатор shell, который будет использоваться, в частности, для содержания сценария.

Теперь все скрипты будут включать определение интерпретатора shell: #!/bin/bash.

В частности, это написано в литературе Advanced Bash scripting guide. Имена файлов и разрешения

Чтобы запустить скрипт, файл должен быть исполняемым, осуществляется с помощью команды «chmod +x ИМЯ_ФАЙЛА» команды. По умолчанию все вновь созданные файлы не запускаются независимо от суффикса расширение файла. В самом деле, последнее свойство в системах GNU/Linux, большинство, не имеют никакого значения.

При выполнении команды «ls» команды для перечисления всех файлов и каталогов сразу понятно, что файл с расширением «.sh» является правдоподобным скрипт, но с le.jpg» будет сжатого изображения. Более подробную информацию о расширении этого языка, вы можете прочитать в учебниках Advanced Bash scripting guide.

В системах GNU/Linux, команда может быть использована для определения типа файла. Как видно в примере ниже, расширение файла не имеет никакого значения, и интерпретатор shell в этом случае, имеет больший вес.

Таким образом, имя скрипта оболочки «0_xyz» отлично действует, даже если программистам можно попытаться избежать. Команда shell, PATH

Когда разработчик вводит команду в оболочке Bash смотрит в определенные каталоги, чтобы знать, если он может найти его. Таким образом, в соответствии с Bash-scripting guide, если выигрывает «ls» в оболочке, он выполняет команду, если она находится на его пути. Операция завершается неудачей, если она не будет в одной из папок, которые являются частью маршрута. Если есть совпадение, что в один из каталогов в пути, он выбирает первое. Можно маршрут узнать, запустив:

echo $ PATH.

На экране монитора появиться что-то вроде этого:

/home/jzb/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/jvm/jre/bin. Правильный путь к папке home

Каждый каталог, в котором, кажется, Баш, делится на толстой кишке. В этом случае, первый из них будет проверена, каталог «bin», а затем / usr / local / bin, / usr / bin.

Если пользователь вошел в систему как root, он должен увидеть другую игру в директории / usr / local / sbin, / usr / sbin.

Вы можете добавить их в путь или изменить его, отредактировав файлы:

~ / .bashrc и ~ / .bash_profile.

Например: PATH="$HOME/bin:$PATH" .

Вы можете немного изменить это правило и установить advanced Bash scripting. PATH "=" сообщит Bash, что он будет устанавливать пути, и «$ HOME / bin» предлагает ему добавить в каталог "bin", и после «$ PATH» рекомендует ему добавить все, что уже находится на дороге.

Параметр«: » - разделитель между элементами. Разработчик видит на экране монитора что-то вроде этого:

if [ -d "$HOME/bin" ] ;

then PATH="$HOME/bin:$PATH"

fi.

Это правило проверяет, существует каталог «bin» в домашнем каталоге, а затем добавляет его в путь, чтобы затем правильно выполнить операцию «run Bash-скрипт». Линии псевдоним

Псевдоним-это строка, в которой Баш будет заменена другой командой. Простой пример:

alias ls = 'ls --color = auto'.

Он сказал, что, когда начинают «ls», необходимо выполнить команду «ls --color = auto», без игры и все остальное. Вы можете определить псевдоним в командной строке, и это хорошо для тестирования.

Есть смысл задать псевдоним в «~ / .bash_profile и ~ / .bashrc». Или создать что-то вроде «~ / .aliases» и вызвать файлы конфигурации следующим образом:

if [ -f ~/.bash_aliases ];

then . ~/.bash_aliases

fi

Чтобы посмотреть уже псевдоним, просто бросают их в раковину. Он присутствует по умолчанию в дистрибутиве. Вот, например, набор по умолчанию на openSUSE 11.2, без каких-либо изменений.

В качестве теста, вы можете увидеть, что у вас уже установлен дистрибутив и попробовать установить ряд собственных вариантов. Расширение оболочки

Перед Bash выполняет команды, он оценивает вход и расширяет псевдоним, и другие выражения, когда это необходимо. Он имеет несколько символов, которые он должен простирается, чтобы соответствовать один или несколько символов, и они называются «подстановочные знаки». Эта модель сопоставления может быть действительно полезным.

Например, если вам нужно посмотреть все файлы в формате JPEG в папку, запуск «ls * jpg», при условии, что JPEG-файлы обозначены как «jpg», и Баш будет расширяться, чтобы соответствовать любое имя файла, который заканчивается на jpg.

Если вы хотите объединить только 1 символ «?». Это будет знак, поэтому «ls? .Jpg» будет соответствовать только имена файлов, например, «1.jpg» или «a.jpg» и не «01.jpg».

Bash позволяет также сопоставлять диапазоны символов в круглых скобках. Использование [abc12] будет соответствовать одному из символов при расширении. Таким образом, работая «ls -lh [abc12] .jpg», будут установлены в соответствии с a.jpg, b.jpg, c.jpg, 1.jpg и 2.jpg но не 12.jpg или abc.jpg. Вы можете свести на нет модели с префиксом «взрыва» (!), Например: ls -lh [! Ab12] .jpg будет c.jpg или 3.jpg но не 2.jpg др.

Еще один трюк - расширение таблица чемпионата, когда необходимо упорядочить документы по году и по дате. Если, например, в папку ~ / Документы каталог 2010 с подкаталогами от 01 до 12, и не нужно печатать с 01 по 12, делают Bash вместо этого: mkdir 2010 / {01..12}. Когда он читает правила, он расширяет то, что находится между фигурных скобок, от 01 до 12. Это также работает с буквами, поэтому, если вы нуждаетесь в подкаталоги z, вы можете начать mkdir {a..z}, и он будет создавать каталоги з. Может также работать с буквами. Выполнение сценария

Есть и другой способ запуска скриптов Bash. В очень упрощенном представлении его сценарий-это не что иное, как текстовый файл, содержащий инструкции, которые должны быть выполнены по порядку сверху вниз. То, как интерпретируются инструкции, зависит от определенного притон или способ исполнения сценария.

Другой метод реализации сценариев явно вызывать его переводчик, например, $ bash date.sh. Таким образом, скрипт будет выполняться без необходимости запускать скрипт, и без объявления притон, непосредственно в разработке операционной системы, вызывая исполняемый двоичный файл bash. Таким образом, содержимое файла date.sh будет загружать и быть истолковано как Bash Shell Скрипт. Относительный и абсолютный путь

Перед программированием официальный скрипт, например, exit Bash-скрипт, вы должны установить навигацию с ней и сделать разницу между относительным и абсолютным путем к файлу. Возможно, лучшая аналогия, чтобы объяснить относительный и абсолютный путь к файлу, просмотр файловой системы GNU/Linux, такие как здания в несколько этажей.

Корневой каталог от входной двери здания, связанного с позиции, он обеспечивает вход в файловой системе, «здания», таким образом, дает вам доступ ко всем каталогам - «этажи» и «части» и " файлы «арендаторов». Чтобы, например, войти в комнату, 1 на 3 этаже, вы должны сначала войти в главные ворота, а затем перейти на 3 этаж (level3)и оттуда войти в комнату (room1). Таким образом, абсолютный путь к этой комнате, на этаже внутри здания «/level3/room1».

Там, если вам нужно, чтобы посетить room2 на уровне 3, сначала устанавливают текущее местоположение, часть, 1, при входе, «../», а затем, включая имя зал «room2». При принятии относительный путь в зале 2, в этом случае «../room2». Как, в этом примере пользователь был уже на третьем уровне, он не должен покидать здание и знал, абсолютный путь через главный вход /level3/room2.

К счастью, GNU/Linux-это простой компас, чтобы помочь программисту перемещения по файловой системе в виде «pwd» команды. Эта команда при запуске всегда будет печать вашего текущего местоположения. Следующий пример будет использовать «cd» и «pwd» команды для навигации в файловой системе GNU/Linux с помощью абсолютных и относительных путей.

Подробнее подробнее.

Выполняют команду «cd» без каких-либо аргументов, чтобы мгновенно перейти в домашний каталог пользователя из любого места. Как видно, навигации по файловой системе GNU/Linux-это простой, и в то же время очень сложная тема. Понятие переменных

Почти каждый язык программирования имеет понятие переменных символическое имя для часть памяти, вы можете назначить значения, читать и управлять его содержанием. Например, для Bash-скрипт example, «Hello World», вы можете сделать это с помощью переменных. Внимание, что не должно быть пробелов вокруг знака «=»: VAR=value; VAR = value не работает.

В первом случае оболочка видит символ «=» и поддерживает команду как назначение переменной. Во втором случае, оболочка предполагает, что VAR должно быть название команды и пытается запустить его. Вводят следующий код в var.sh.

Это влияет на переменную «Hello World» переменная MY_MESSAGE. При этом нужно кавычки строка "Hello World", и значение переменной не может содержать значение 1, если строка с пробелами должны быть в кавычках, чтобы оболочка знал, что все это считается. В противном случае, оболочка пытается выполнить команду «Мир» после назначения «MY_MESSAGE=Hello».

Оболочка не требуя, чтобы типы переменных, они могут хранить строки, целые числа, действительные числа - все, что нравится пользователю. Опытных программистов внимание на то, что специальные символы должны быть надлежащим образом защищены. Чтобы сделать это, используйте команду «shell builtin, " чтение», который считывает строку из стандартного ввода, указанное в переменной. Если и дать ему полное имя и не использовать двойные кавычки вокруг «эхо» команды, то она отображается правильно.

Большинство языков имеют понятие, циклы, если вам нужно повторить по двадцать раз, вряд ли пользователь захочет ввести код в 20 раз, да еще, наверняка, с ошибками. Для этого существует «for» и «while» цикл в оболочке Bourne. Это дает немного меньше возможностей, чем другие языки, но никто не утверждает, что программирование на shell имеет силу C. For-цикл повторяется через набор значений, до тех пор, пока список не будет исчерпан, ghb ‘njv значение может быть любым. Первый сценарий

Для первого скрипта, вы можете просто написать скрипт, который говорит «Hello World». Создают файл (first.sh) следующим образом: first.sh Первая строка указывает, Unix, файл должен быть запущен / bin / sh. Это расположение по умолчанию для оболочки практически для всех систем Unix.

Если вы используете Linux, Bash-скрипт, то GNU/Linux / bin / sh, как правило, символическую ссылку на баш, или совсем недавно начали использовать тире. Вторая строка начинается с символа « #». Это строка, как комментарий, и он полностью проигнорировал оболочка. Единственное исключение-это когда начинается первая строка файла « #!». Это директива, что Unix выглядит особенно и означает, что даже если обращение к «csh», «ksh» или что-то в качестве интерактивной оболочки, последующее интерпретируется Bourne.

Даже, Perl может начаться в строке:

#!/usr/bin/perl

Это означает, interactive shell, что следующая команда должна быть выполнена perl. Для программирования Bourne shell обычно держатся:

#!/bin/sh.

Третья строка выполняет команды «эхо» с двумя параметрами или аргументами: первый - "Hello"; второй "World". Внимание, что «эхо» автоматически пробел между параметрами. Символ до сих пор, отмечает комментарий «#», и все остальные за ним игнорируются оболочки. Тест для проверки скрипта

Тест используется для почти все, написал скрипт. Во время этого «теста» не называется напрямую, использовать обозначение «[». Он является символической ссылкой этого слова, чтобы сделать программу оболочки более читабельным.

Как правило, это означает, что сама оболочка Bash shell скрипт будет интерпретироваться «[», как значение «тест», даже если в среде Unix настроен по-другому. Это означает, что «[» в самом деле, это программа, как «ls» и другие, поэтому он должен быть окружен пробелами: if [$ foo = "bar"] не будет работать, потому что это интерпретируется как: if test$foo = "bar"],«] » без начала «[».

В этом случае, ставят пробелы вокруг операторов и выделяют обязательные слово «SPACE», и заменить его на реальное пространство, в противном случае, если нет места, это не работает:

if SPACE [SPACE "$ foo" SPACE = SPACE "бар" SPACE]

Некоторые оболочки принимают «==» для сравнения строк. Для последних лучше использовать простой « или «-eq» для целых чисел.

Как видно, тест-это простой, но мощный инструмент сравнения, что необходимо для работы в оболочке.

Конечно, все не станут гуру Bash в конце чтения статьи, но будут более безопасными и вооружены хорошими знаниями и навыками, чтобы быстро делать свою работу. Автор: Иван Фролов 11 Ноября 2018 Года



Категория: Новости Tech