Выполнение команд в Linux (объединения их посредством операторов)
Ни для кого не будет секретом, что рано или поздно человек осваивающий "пингвина" столкнётся с надобностью исполнения тех или иных команд в командной строчке. И хорошо если она одна... а если их две, три или n-количество. Тут у нас возникает два варианта:
- Вводить их поочерёдно, дожидаясь выполнения предыдущей.
- Автоматизировать этот процесс по максимуму.
И если первый вариант, не у кого не должен вызвать вопросов, то на втором хотелось бы остановиться более детально. Для этого нам понадобятся так называемые операторы.
Оператор ;
comand1 ; comand2; comand3
При использовании этого оператора - ; команды будут выполнены последовательно одна за другой, т.е. сначала будет запущена команда comand1 на выполнение, оболочка дождется её завершения и запустит comand2, а после неё comand3. Закончив с последней командой оболочка вернёт командную строчку пользователю, ожидая следующих действий.
Пример использования:
apt-get clean ; apt-get update
Данная связка сначала очистит кэш, а потом проверит нет ли новых обновлений.
Оператор &
Данный оператор используется для того чтобы перевести выполнение команд в фоновый режим. Таким способом можно в фоновом режиме последовательно выполнить несколько команд, главное после каждой не забывайте поставить &:
comand1 & comand2 &
Оператор &&
comand1 && comand2
Этот оператор интересен тем, что позволяет выполнить следующую команду только в том случае, если предыдущая была успешно выполнена, в противном же случае все последующие задачи выполнятся не будут.
Пример использования:
apt-get dist-upgrade -y && apt-get clean && reboot
Т.е. в случае успешного полного обновления всей системы будет выполнена очистка кэша обновлений, и вслед за ней – перезагрузка (любимая мною связка). А мы тем временем будем попивать кофеёк и может быть клеить секретаршу . Если же по каким-то причинам обновление системы будет отменено - все последующие команды выполняться не будут.
Оператор ||
comand1 || comand2
Данный оператор - абсолютная противоположность предыдущему. Т.е. он выполняет следующее действие, только в том случае, если результат выполнения предыдущей команды отличается от нуля (т.е. команда не закончила успешно свою работу и не вернула пользователю командную строку). Если честно, у меня лично опыта использования этого оператора нет. Возможно кто-то уже пользуется всеми её прелестями и поделится в комментариях.
Похожие материалы (по тегу)
Последнее от DKomp
- Автоматизация: bat файл – как скопировать настройки сетевых адаптеров Windows (экспорт/импорт)
- Автоматизация: настройка сетевого подключения Windows с помощью bat файла
- Kali Linux (Debian): Как сделать автовход пользователя root
- Как отключить обновление Windows 7 (Windows 8.1) до Windows 10
- Excel: как снять защиту?