Как создать задание в сценарии оболочки?

#bash #shell

#bash #оболочка

Вопрос:

Я знаю, что выполнение команды и добавление amp; в конец создадут задание и заставят команду выполняться в фоновом режиме.

Теперь я хочу создать задание в оболочке bash. Я пытался

 #!/bin/bash

my-job amp;
# some other tasks
 

Затем я выполнил jobs , но не получил никаких результатов. Тем не менее, ps aux шоу my-job выполняется в фоновом режиме.

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

Ответ №1:

jobs обычно это концепция интерактивной оболочки, поскольку обычно задействован управляющий терминал.

Сценарий оболочки выполняется в неинтерактивном сеансе оболочки без входа в систему, поэтому по умолчанию управление заданием отсутствует.

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

 set -m
 

внутри скрипта.

От help set :

 -m  Job control is enabled.