Как поставить команды в очередь

Предположим, у меня есть задания, которые нужно запускать одно за другим, как я могу поставить их в очередь и, если возможно, по-прежнему сохранять выходные данные / журнал, которые создает каждый скрипт. (например, я могу использовать для планирования задач, но я не получаю журнал / вывод каждого приложения)

3 ответа

Решение

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

foo ; bar ; baz

Если вы хотите поставить в очередь пакет команд, которые будут выполняться в фоновом режиме, когда система не слишком занята и, возможно, после выхода из системы, вы можете использовать команду batch команда. Вывод заданий выполняется с batch, at, или же cron по электронной почте вам. Чтобы это работало, вам нужно настроить локальный почтовый сервер.

Напишите команды с && между ними, например: command1 && command2

Примечание: вторая команда не будет выполнена, если первая команда возвращает ошибку

Если это длинный список команд, или вы собираетесь делать это достаточно часто, я бы сделал скрипт для вас.

Сценарии оболочки такого рода чрезвычайно просты.

#!/bin/bash
foo
bar
baz

Просто поместите этот текст в файл, включите выполнение (chmod +x myscript) а потом ./myscript и уходи.

Это будет выполнять команды foo, bar, а также baz для того, чтобы все они блокировались.

Если вы когда-нибудь захотите сделать что-то более сложное, см. Руководство по расширенному написанию сценариев.

Другие вопросы по тегам