Как поставить команды в очередь
Предположим, у меня есть задания, которые нужно запускать одно за другим, как я могу поставить их в очередь и, если возможно, по-прежнему сохранять выходные данные / журнал, которые создает каждый скрипт. (например, я могу использовать для планирования задач, но я не получаю журнал / вывод каждого приложения)
3 ответа
Если вы хотите запустить несколько команд в интерактивном режиме, просто разделите их точкой с запятой:
foo ; bar ; baz
Если вы хотите поставить в очередь пакет команд, которые будут выполняться в фоновом режиме, когда система не слишком занята и, возможно, после выхода из системы, вы можете использовать команду batch
команда. Вывод заданий выполняется с batch
, at
, или же cron
по электронной почте вам. Чтобы это работало, вам нужно настроить локальный почтовый сервер.
Напишите команды с && между ними, например: command1 && command2
Примечание: вторая команда не будет выполнена, если первая команда возвращает ошибку
Если это длинный список команд, или вы собираетесь делать это достаточно часто, я бы сделал скрипт для вас.
Сценарии оболочки такого рода чрезвычайно просты.
#!/bin/bash
foo
bar
baz
Просто поместите этот текст в файл, включите выполнение (chmod +x myscript
) а потом ./myscript
и уходи.
Это будет выполнять команды foo
, bar
, а также baz
для того, чтобы все они блокировались.
Если вы когда-нибудь захотите сделать что-то более сложное, см. Руководство по расширенному написанию сценариев.