web-dev-qa-db-fra.com

Run in terminal ne fonctionne pas

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: enter image description here

Cela fonctionne aussi très bien: enter image description here

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.

4
Winger Sendon

Ton problème:

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.

Solution 1 - modifiez le script et ajoutez un délai:

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

Solution 2 - modifiez le script et attendez que vous appuyiez sur une touche:

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..."

Solution 3 - changez les préférences de 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:

enter image description here

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:

enter image description here

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 commande exit ou Ctrl+D - Je trouve assez ennuyeux que la fenêtre du terminal ne se ferme plus alors.

8
Byte Commander