І рішення Бреда, і Манкоффа є гарними пропозиціями. Ще одна схожа на їх комбінацію - використання екрана GNU для реалізації вашої черги. Це має перевагу в тому, що ви можете запускатись у фоновому режимі, ви можете перевіряти його коли завгодно, а чергові нові команди просто вставляють їх у буфер, який слід виконати після виходу попередніх команд.
Спочатку запустіть:
$ screen -d -m -S queue
(до речі, зараз прийшов час пограти з чудовими. screenrc файлами )
Це породжує сеанс фонового екрану для вас з назвою черги.
Тепер викладіть у чергу стільки команд, скільки вам подобається:
screen -S queue -X stuff "echo first; sleep 4; echo second^M"
Я виконую кілька команд у вищевказаному лише для тестування. Ваш випадок використання, мабуть, буде схожий на:
screen -S queue -X stuff "echo first^M"
screen -S queue -X stuff "echo second^M"
Зауважте, що "^ M" у моєму рядку вище - це спосіб отримати вбудований новий рядок, який буде інтерпретовано пізніше після того, як екран введе його у вашу наявну оболонку bash. Використовуйте "CTL-V", щоб отримати цю послідовність.
Було б досить просто зробити кілька простих скриптів оболонок, щоб автоматизувати їх і встановити команди в чергу. Потім, коли ви хочете перевірити стан своєї фонової черги, ви повторно додаєте через:
screen -S queue -r
Технічно вам навіть не потрібно називати сеанс на екрані, і він буде добре працювати, але як тільки ви зачепите його, ви все одно хочете залишити його весь час. ;-)
Звичайно, якщо ви це зробите, ще один хороший спосіб зробити це - назвати одне з поточних вікон "чергою" та використовувати:
screen -S queue -p queue -X stuff "command"