5 votes

Comment suspendre et reprendre une séquence de commandes en Bash ?

J'ai cmd2 qui doit suivre après cmd1 complète. Je dois faire une pause cmd1 parfois.

Je tape dans

$ cmd1 && cmd2

puis appuyez sur Ctrl+Z (Stop) d'arrêter cmd1 . Maintenant, cmd1 est en pause mais quand je la reprends, elle ne démarre pas. cmd2 après l'achèvement de cmd1 .

Je tape dans

$ cmd1 ; cmd2

et ensuite j'appuie sur Ctrl+Z (Stop) d'arrêter cmd1 . Maintenant cmd1 est mis en pause mais il démarre immédiatement cmd2 . Cependant, je souhaite commencer cmd2 seulement après cmd1 finitions.

J'ai fait quelques recherches et quelqu'un a suggéré une méthode élégante en zsh mais je me demande s'il n'y a pas un moyen élégant de le faire en bash .

10voto

codeforester Points 17582

Exécutez-le dans un sous-shell :

(cmd1 && cmd2)

Exemple :

$ (sleep 5 && echo 1)                        # started the command chain
^Z
[1]+  Stopped         ( sleep 5 && echo 1 )  # stopped before `sleep 5` finished
$ fg                                         # resumed
( sleep 5 && echo 1 )
1                                            # `sleep 5` finished and `echo 1` ran

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X