Lorsque je lance le programme dans le terminal, je vois la sortie. je peux Ctrl+C pour sortir du terminal, mais existe-t-il un moyen d’en obtenir la sortie dans le terminal?
Je suis conscient que je peux diriger la sortie dans un fichier et le lire, mais il serait bien de le revoir à l'écran pour le tester.
Frappe Ctrl+C envoie un signal SIGINT au processus en cours à l'avant-plan du terminal, en le terminant sauf si le processus ignore délibérément les signaux SIGINT;
Donc en frappant Ctrl+C vous dites au processus en cours d'exécution à l'avant-plan du terminal de se terminer.
Pour exécuter un processus l'empêchant d'occuper le terminal, vous pouvez le démarrer en arrière-plan en ajoutant &
à la fin de la commande:
user@user-X550CL:~/tmp$ bash script.sh &
[1] 24961
user@user-X550CL:~/tmp$
Si vous avez déjà lancé un processus au premier plan, vous pouvez toujours l'arrêter en appuyant sur Ctrl+Z:
user@user-X550CL:~/tmp$ bash script.sh
^Z
[1]+ Stopped bash script.sh
user@user-X550CL:~/tmp$
Et envoyez-le en arrière-plan et reprenez son exécution en utilisant le bg
intégré:
user@user-X550CL:~/tmp$ bg
[1]+ bash script.sh &
user@user-X550CL:~/tmp$
Vous pouvez envoyer plusieurs processus en arrière-plan:
user@user-X550CL:~/tmp$ bash script.sh &
[1] 24961
user@user-X550CL:~/tmp$ bash script.sh &
[2] 24984
user@user-X550CL:~/tmp$ bash script.sh &
[3] 24989
user@user-X550CL:~/tmp$
Vous pouvez lister tous les processus en arrière-plan en utilisant le jobs
intégré:
user@user-X550CL:~/tmp$ jobs
[1] Running bash script.sh &
[2]- Running bash script.sh &
[3]+ Running bash script.sh &
user@user-X550CL:~/tmp$
Pour déplacer un processus de l'arrière-plan au premier plan, vous pouvez utiliser la fonction intégrée fg
en transmettant le numéro de travail en tant qu'argument:
user@user-X550CL:~/tmp$ fg %1
bash script.sh
L'exécution de fg
sans spécifier de numéro de travail en tant qu'argument aura pour effet de déplacer au premier plan le dernier processus en arrière-plan:
user@user-X550CL:~/tmp$ fg
bash script.sh
Lancez votre application ou commande via
_command &
_
et ne pas utiliser Ctrl-C. Vous verrez la sortie jusqu'à la fermeture du terminal.
Ramenez la commande au premier plan avec
_fg
_
Exemple
Créez un script simple, par exemple.
_#!/bin/bash
while true; do
echo foo
sleep 5
done
_
Démarrez le script, le programme produira le mot foo
. Après quelque temps, je suis entré echo bar
, suivi de fg
et Ctrl-C pour terminer le script.
$ ./foo & [1] 29544 $ foo foo foo barre d'écho bar $ foo foo fg [1] + 29544 en cours ./foo[.____. Printer