Les solutions de Brad et de Mankoff sont toutes deux de bonnes suggestions. Une autre solution, similaire à une combinaison des deux, consisterait à utiliser Écran GNU pour mettre en œuvre votre file d'attente. Cela a l'avantage de pouvoir fonctionner en arrière-plan, vous pouvez vérifier à tout moment, et la mise en file d'attente de nouvelles commandes les colle simplement dans le tampon pour qu'elles soient exécutées après la sortie des commandes précédentes.
D'abord, courir :
$ screen -d -m -S queue
(c'est d'ailleurs le bon moment pour jouer avec des . fichiers screenrc )
Cela créera une session d'écran en arrière-plan pour votre file d'attente.
Maintenant, mettez en file d'attente autant de commandes que vous le souhaitez :
screen -S queue -X stuff "echo first; sleep 4; echo second^M"
Je fais plusieurs commandes dans ce qui précède juste pour tester. Votre cas d'utilisation ressemblerait probablement plus à
screen -S queue -X stuff "echo first^M"
screen -S queue -X stuff "echo second^M"
Notez que le "^M" dans ma ligne ci-dessus est un moyen d'obtenir une nouvelle ligne intégrée qui sera interprétée plus tard après que screen l'ait insérée dans votre Shell bash existant. Utilisez "CTL-V, " pour obtenir cette séquence.
Il serait assez facile de créer de simples Shell-Shell pour automatiser cela et mettre les commandes en file d'attente. Ensuite, chaque fois que vous voulez vérifier l'état de votre file d'attente en arrière-plan, vous ré-attachez via :
screen -S queue -r
Techniquement, vous n'avez même pas besoin de nommer votre session d'écran et cela fonctionnera parfaitement, mais une fois que vous y serez habitué, vous voudrez de toute façon en laisser une en cours d'exécution en permanence ;-)
Bien sûr, si vous faites cela, une autre bonne façon de procéder serait de nommer l'un des Windows actuels "file d'attente" et d'utiliser :
screen -S queue -p queue -X stuff "command"