Les solutions de Brad et Mankoff sont toutes deux de bonnes suggestions. Une autre combinaison semblable à une combinaison des deux consisterait à utiliser GNU Screen pour implémenter votre file d'attente. Cela présente l’avantage de pouvoir s’exécuter en arrière-plan. Vous pouvez le vérifier à tout moment et les mettre en file d’attente de nouvelles commandes ne fait que les coller dans la mémoire tampon à exécuter après la fermeture des commandes précédentes.
Première exécution:
$ screen -d -m -S queue
(accessoirement, le moment est venu de jouer avec des fichiers géniaux. screenrc )
Cela créera une session d'écran en arrière-plan pour votre file d'attente nommée.
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 les tests. Votre cas d'utilisation ressemblerait probablement davantage à:
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 incorporée qui sera interprétée plus tard après que l’écran l’a 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 scripts shell pour automatiser cela et mettre les commandes en file d'attente. Ensuite, chaque fois que vous souhaitez vérifier l'état de votre file d'attente en arrière-plan, vous vous reconnectez via:
screen -S queue -r
Techniquement, vous n'avez même pas besoin de nommer votre session écran et cela fonctionnera bien, mais une fois que vous y êtes accroché, vous voudrez toujours en laisser une en cours d'exécution tout le temps. ;-)
Bien sûr, si vous faites cela, un autre bon moyen de le faire serait de nommer l’une des "files" de windows actuelles et d’utiliser:
screen -S queue -p queue -X stuff "command"