Linux — Выполнение нескольких команд

После символа & вы можете указать следующую команду. В таком случае первая команда будет выполняться в фоновом режиме, а вторая — на виду. В следующем примере команда find вновь запускается в фоновом режиме. Однако ls одновременно выводит со­держание текущего каталога:

user$ find / -name '*sh' > result & ls

Если вместо символа & поставить точку с запятой, то bash поочередно выполнит команды в фоновом режиме:

user$ ls; date

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

user$ (ls; date) > content

В файле content теперь находится список файлов, созданный ls, а также текущая дата, выясненная date . Благодаря круглым скобкам обе команды выполняются одной и той же оболочкой и выдают общий результат (как правило, ситуация иная — при запуске каждой новой команды активируется новая оболочка).

Используя сочетания символов && и ||, можно выполнять команды относительно, то есть в зависимости от результата другой команды

user$ команда1 && команда2

Выполняет команду1. Только в случае, если эта команда была выполнена успешно (без ошибки, без выдачи 0 в качестве возвращаемого значения), выполняется команда2.

Команда Функция
Команда1 ; Команда2 Выполняет команды одну за другой
Команда1 && Команда2 Выполняет Команду2, если Команда1 была выполнена успешно
Команда1 || Команда2 Выполняет Команду2, если Команда1 возвращает ошибку
Команда & Запускает команду в фоновом режиме
Команда1 & Команда2 Выполняет Команду1 в фоновом режиме, Команду2 — на виду
(Команда1 ; Команда2) Выполняет обе команды в одной и той же оболочке

Другие возможности для создания условий и ветвления команд связаны с ис­пользованием оболочковой команды if, которая, однако, будет интересна лишь тем, кто собирается заниматься программированием на языке оболочки.

Опубликовано в категории: Linux Метки: ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *