Las soluciones de Brad y Mankoff son buenas sugerencias. Otro que es similar a una combinación de ambos les sería utilizar GNU Screen para implementar su cola. Esto tiene la ventaja de poder ejecutarse en segundo plano, puede verificarlo cuando lo desee y poner en cola nuevos comandos simplemente los pega en el búfer para que se ejecuten después de que salgan los comandos anteriores.
Primer intento:
$ screen -d -m -S queue
(por cierto, ahora es un buen momento para jugar con algunos archivos impresionantes. screenrc )
Eso generará una sesión de pantalla de fondo para usted llamada cola.
Ahora, ponga en cola tantos comandos como desee:
screen -S queue -X stuff "echo first; sleep 4; echo second^M"
Estoy haciendo múltiples comandos en lo anterior solo para probar. Su caso de uso probablemente se parecería más a:
screen -S queue -X stuff "echo first^M"
screen -S queue -X stuff "echo second^M"
Tenga en cuenta que la "^ M" en mi línea anterior es una forma de obtener una nueva línea incrustada que se interpretará más tarde después de que la pantalla la inserte en su shell de bash existente. Use "CTL-V" para obtener esa secuencia.
Sería bastante fácil crear algunos scripts de shell simples para automatizar eso y poner en cola los comandos. Luego, cada vez que desee verificar el estado de su cola en segundo plano, se vuelve a adjuntar a través de:
screen -S queue -r
Técnicamente, ni siquiera necesita nombrar su sesión de pantalla y funcionará bien, pero una vez que se enganche, querrá dejar una en ejecución todo el tiempo de todos modos. ;-)
Por supuesto, si haces eso, otra buena manera de hacerlo sería nombrar una de las ventanas actuales "cola" y usar:
screen -S queue -p queue -X stuff "command"