русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Устройство командной строки


Дата добавления: 2014-11-27; просмотров: 730; Нарушение авторских прав


Командой в BASH считается отдельная команда (например, ls) или конвейер (pipeline) – последовательность двух или более команд, в которой стандартный вывод предшествующей команды передаются на стандартный ввод последующей (ls | more). Но синтаксис конвейера несколько расширен по сравнению с sh, и имеет следующий вид:

[time [-p] ] [ ! ] command [ | command2 ... ],

где в факультативную часть входит "time" – зарезервированное слово, используемое для измерения времени, затраченного на выполнение команды, а также "!" – знак отрицания, меняющий код завершения команды на противоположный.

Обычно конвейер находится на одной строке. Если требуется разместить его на нескольких строках, их можно объединять в одну логическую строку, используя знак переноса "\". На одной строке можно записывать несколько команд, разделяя их специальными знаками.

Для группирования команд в строке применяются символы ";" и "&". Символ ";" используется для последовательного выполнения нескольких команд: после завершения одной команды начинается выполнение другой. Если вместо ";" используется "&", то команда, сопровождаемая этим знаком, выполняется в фоновом режиме, а выполнение следующей команды начинается немедленно, и, таким образом, две или более команд выполняются параллельно. Например:

команда1; команда2 – последовательное выполнение;

команда1 & команда2 – параллельное выполнение.

Последовательное выполнение команд можно связать условиями: "&&" (удачного выполнения предшествующей) и "||" (неудачного выполнения предшествующей). Например,

· выполнить команду1, и если она выполнилась удачно, выполнить команду2:

команда1 && команда2;

· выполнить команду1, и если она выполнилась неудачно, выполнить команду2:



команда1 || команда2.

Как известно, каждая команда возвращает ОС некоторый код завершения, по которому можно судить об «успешности» выполнения. Командную строку можно считать логическим выражением, значение которого требуется вычислить, где отдельные команды есть переменные, принимающие значение "истина" или "ложь", то знаки "&&" и "||" можно рассматривать как операции логического И и ИЛИ. Отсюда понятна и логика действия этих связок в командой строке: если первая из двух команд, соединенных связкой И, возвращает "ложь", то результат всего выражения - заведомо "ложь", поэтому вторая команда не выполняется; аналогично, если первая из двух команд, соединенных связкой ИЛИ, выполнилась успешно, то уже известно, что результат всего выражения - "истина", и вторая команда не выполняется.

В отличие от подобных операций в языке Си, связки "||" и "&&" в BASH имеют одинаковый приоритет, то есть выражение "A || B && C" аналогично "(A || B) && C", но не "A || (B && C)".

Для изменения приоритета (и порядка выполнения команд) можно использовать круглые ( ) или фигурные { } скобки. Так, скобки { } обеспечивают группирование команд в один конвейер.

Чтобы сделать перенаправление ввода-вывода для нескольких команд, вместо конструкции

cmd1 >a; cmd2 >>a"

можно писать

{cmd1; cmd2;}>a.

В скобки ( ) заключают команды, после выполнения которых сделанные ими изменения среды (environment vars) восстанавливаются. Например, строка:

a="global"; (a="local"; echo now a is $a); echo and now $a

выведет:

now a is local

and now global

 

Фигурные, и круглые скобки можно использовать для группирования команд с целью изменения порядка выполнения команд со связками "||" и "&&".

Проверка значения арифметического выражения с помощью (( )). Выражение, заключенное в (( )), будет вычислено по правилам вычисления арифметических выражений, действующих, кроме данного случая, еще и для конструкции $(()) и команды let. После вычисления выражения команда считается выполненной успешно (и возвращается код 0) в том случае, если результат отличен от нуля, и неуспешно в случае равенства результата нулю.

Символ "!".Ставится перед командой для отрицания кода ее выхода.



<== предыдущая лекция | следующая лекция ==>
Некоторые наиболее часто используемые команды | Экспансия


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.161 сек.