Je suis nouveau sur Ubuntu et j'essayais d'exécuter ce script:
#!/usr/bin/env bash
echo hello world
Cela fonctionne bien si j'ouvre d'abord le terminal et l'invoque manuellement. Comme ./test
.
J'ai mis "Demander à chaque fois" dans les préférences de fichier:
Cela fonctionne aussi très bien:
Maintenant, je clique sur Run in terminal. Et Lo! Rien ne se produit.
Je pense que cela ouvrira le terminal et fera écho hello world. Qu'est-ce que je fais mal? Il s'agit d'une nouvelle installation d'ubuntu avec les fenêtres du site Web d'ubuntu.
Le problème est que echo hello world
s'exécute en quelques millisecondes, plus rapidement que la fenêtre du terminal ne peut apparaître.
Cela signifie que votre script se termine déjà avant que le terminal ne soit visible. Par conséquent, son démarrage est annulé et vous ne voyez rien.
Vous pouvez ajouter un délai (ici: 5 secondes) à la fin de votre script pour qu'il s'exécute plus longtemps et que vous ayez le temps de voir le résultat avant la fermeture du script et la fermeture de la fenêtre du terminal:
#!/usr/bin/env bash
echo hello world
sleep 5
Vous pouvez également ajouter une commande read
à la fin de votre script pour attendre la saisie au clavier avant la fin du script.
Le paramètre -s
provoque une entrée silencieuse, c’est-à-dire que la touche enfoncée ne sera pas renvoyée au terminal.-n1
ne lui permet de lire qu'un seul caractère et revient immédiatement après au lieu d'attendre Enter être pressé.
L'argument -p "Press any key to exit..."
spécifie en fait le texte à imprimer avant d'attendre la saisie.
#!/usr/bin/env bash
echo hello world
read -s -n1 -p "Press any key to exit..."
gnome-terminal
pour conserver la fenêtre ouverte:Lancez une fenêtre gnome-terminal
, ouvrez le menu Éditer et sélectionnez Préférences de profil. Accédez à l'onglet Commandes. Vous verrez un menu déroulant intitulé When command exits:
Choisissez Maintenez le terminal ouvert ici et fermez la fenêtre de configuration.
Désormais, lorsque vous double-cliquez sur un script et que vous choisissez de l'exécuter dans un terminal, la fenêtre ne se ferme plus mais reste ouverte et affiche une bannière vous informant de l'état de sortie du script:
Attention!
Ce paramètre s’applique également si vous ouvrez manuellement une fenêtre de terminal et tentez de la fermer en quittant Bash à l’aide de la commandeexit
ou Ctrl+D - Je trouve assez ennuyeux que la fenêtre du terminal ne se ferme plus alors.