Entrambe le soluzioni di Brad e Mankoff sono buoni suggerimenti. Un altro che è simile a una combinazione di entrambi sarebbe usare GNU Screen per implementare la tua coda. Questo ha il vantaggio di poter essere eseguito in background, è possibile verificarlo ogni volta e accodare i nuovi comandi li incolla nel buffer per essere eseguiti dopo l'uscita dei comandi precedenti.
Prima corsa:
$ screen -d -m -S queue
(per inciso, ora è un buon momento per giocare con dei fantastici file .rackrc )
Ciò genererà una sessione di schermata di sfondo per te chiamata coda.
Ora, fai la coda di tutti i comandi che vuoi:
screen -S queue -X stuff "echo first; sleep 4; echo second^M"
Sto facendo più comandi in quanto sopra solo per i test. Il tuo caso d'uso dovrebbe probabilmente apparire più simile a:
screen -S queue -X stuff "echo first^M"
screen -S queue -X stuff "echo second^M"
Nota che la "^ M" nella mia riga sopra è un modo per ottenere una nuova riga incorporata che verrà interpretata in seguito dopo che lo schermo lo inserisce nella tua shell bash esistente. Usa "CTL-V" per ottenere quella sequenza.
Sarebbe abbastanza facile creare alcuni semplici script di shell per automatizzare ciò e mettere in coda i comandi. Quindi, ogni volta che si desidera verificare lo stato della coda in background, si ricollega tramite:
screen -S queue -r
Tecnicamente, non hai nemmeno bisogno di nominare la tua sessione schermo e funzionerà bene, ma una volta che ti sarai agganciato, vorrai comunque lasciarne uno in esecuzione tutto il tempo. ;-)
Naturalmente, se lo fai, un altro buon modo per farlo sarebbe quello di nominare una delle "code" attuali di Windows e usare:
screen -S queue -p queue -X stuff "command"