veuillez noter qu'en utilisant ceci, vous perdez le contrôle des travaux à l'intérieur du shell de l'appelant ( jobsne montrera rien).
mighq
36
Exécutez le shell intégré:
$ set+m
Cela fonctionne en désactivant le "mode moniteur" afin que le shell ne signale pas la fin des travaux en arrière-plan.
Bien que l'exécution de la commande dans un sous-shell comme:
$ (sleep 2&)
... désactivera également le message, la seule raison pour laquelle cela fonctionne est que le mode moniteur est activé par défaut uniquement pour les shells interactifs. Autrement dit, le sous-shell évite le message en exécutant un shell supplémentaire qui a un "set + m" automatique .
Il faut noter que cette sortie n'est pas effectuée par le sommeil. C'est le shell bash qui vous informe simplement du travail d'arrière-plan terminé.
flolo
8
Je voudrais clarifier les deux réponses précédentes. Si ce que vous voulez, c'est de ne jamais voir le message Terminé à partir des commandes de votre shell, set +mc'est la voie à suivre. Mettez-le simplement dans votre .profile et / ou .bashrc et c'est fait. Notez cependant que si vous tapez ceci:
set+m
sleep 2&set-m
et le sommeil se termine après la finale set -m, vous aurez toujours le message terminé.
Si vous souhaitez désactiver le message pour un appel de commande unique, la technique de sous-shell (sleep 2 &)est la voie à suivre.
En toute honnêteté, je ne savais que set +m, donc +1 à Wooble pour m'avoir éclairé. Cependant, il convient de noter que celle des deux solutions que vous souhaitez dépend de ce que vous essayez de faire.
jobs
ne montrera rien).Exécutez le shell intégré:
Cela fonctionne en désactivant le "mode moniteur" afin que le shell ne signale pas la fin des travaux en arrière-plan.
Bien que l'exécution de la commande dans un sous-shell comme:
... désactivera également le message, la seule raison pour laquelle cela fonctionne est que le mode moniteur est activé par défaut uniquement pour les shells interactifs. Autrement dit, le sous-shell évite le message en exécutant un shell supplémentaire qui a un "set + m" automatique .
la source
Je voudrais clarifier les deux réponses précédentes. Si ce que vous voulez, c'est de ne jamais voir le message Terminé à partir des commandes de votre shell,
set +m
c'est la voie à suivre. Mettez-le simplement dans votre .profile et / ou .bashrc et c'est fait. Notez cependant que si vous tapez ceci:et le sommeil se termine après la finale
set -m
, vous aurez toujours le message terminé.Si vous souhaitez désactiver le message pour un appel de commande unique, la technique de sous-shell
(sleep 2 &)
est la voie à suivre.En toute honnêteté, je ne savais que
set +m
, donc +1 à Wooble pour m'avoir éclairé. Cependant, il convient de noter que celle des deux solutions que vous souhaitez dépend de ce que vous essayez de faire.la source
Sans sous-shell , vous pouvez effectuer les opérations suivantes:
Basé sur cette réponse .
la source