Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/12/2016, à 15:30

krimo31

[Résolu] Script ne se lance pas dans le terminal

Bonjour à toutes et à tous,

J'ai Ubuntu 16.04 et je souhaite exécuter un script dans le terminal par défaut.

Le script que je souhaite utiliser me servira à récupérer des informations sur des vidéos plus simplement avec la commande youtube-dl.

Voilà le script

#!/bin/bash
echo "Type Youtube Video URL, followed by [ENTER]:" 
read url
youtube-dl -F $url
$SHELL

Je l'ai créé sur le bureau et je lui ai donné les permissions nécessaires

cd Bureau
sudo chmod +x youtube.sh

Le script contient une commande 'read' qui nécessite que l'utilisateur tape le lien de la vidéo. Le script marche bien si j'ouvre un terminal et que je pointe vers lui. Il marche aussi si je modifie les paramètres de nautilus pour qu'il me demande quoi faire avec les fichiers texte exécutables; je choisis donc 'Ouvrir dans un terminal' après double-clic sur le fichier.

Le problème est que j'aimerai lancer ce script simplement en double-cliquant sur lui (avec 'Exécuter' et pas 'Exécuter dans un terminal'). Si je choisis simplement 'Exécuter' après le double-clic il ne se passe rien. J'ai cru comprendre qu'il fallait ajouter 'gnome-terminal -e' dans le script, ce qui donnerait:

#!/bin/bash
gnome-terminal -e echo "Type Youtube Video URL, followed by [ENTER]:" 
read url
youtube-dl -F $url
$SHELL

Mais ça ne change rien. Le script ne s'exécute pas. J'ai testé un script simple juste pour afficher le mot "test"

#!/bin/bash
echo "test" 
$SHELL

ou

#!/bin/bash
gnome-terminal -e echo "test" 
$SHELL

Mais il ne se passe rien en double-cliquant. Je suis obligé de modifier les paramètres de nautilus pour qu'il me demande quoi faire avec les fichiers texte exécutables et choisir 'Exécuter dans un terminal'.

Pourriez-vous m'aider à exécuter des scripts (et surtout à les afficher)?

Dernière modification par krimo31 (Le 11/12/2016, à 00:20)

Hors ligne

#2 Le 08/12/2016, à 09:35

Sciensous

Re : [Résolu] Script ne se lance pas dans le terminal

le gnome-terminal -e est mal placé:

dans le lanceur tu mets la commande 

gnome-terminal -e <nom du script>

dans ton cas:

gnome-terminal -e Bureau/youtube.sh

Dernière modification par Sciensous (Le 08/12/2016, à 09:36)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#3 Le 09/12/2016, à 01:18

krimo31

Re : [Résolu] Script ne se lance pas dans le terminal

Merci beaucoup Sciensous !

ça marche très bien en faisant ce que tu dis. Il s'agit d'encapsuler le script; le lancer à partir d'un autre script ou d'un raccourci (desktop entry).

La question que je me pose est: Y a-t-il un moyen de lancer le script directement dans le terminal sans l'encapsuler? par exemple:
1) en mettant gnome-terminal -e dedans avec des accolades ou parenthèses pour l'ensemble des lignes, mais je ne connais pas la syntaxe exacte (si cela est possible).
2) en trouvant un moyen de mettre "Ouvrir avec le terminal" dans les options du fichier youtube.sh (si cela est possible).

Par exemple sur MacOS, en appelant mon script youtube.command il se lance directement dans le terminal en s'affichant. En allant voir dans les propriétés du fichier youtube.command il y a quelque part "Ouvrir avec le terminal". Sur Ubuntu, dans les paramètres du fichier youtube.sh, la partie "Ouvrir avec" ne contient pas le terminal dans la liste des applications; y a-t-il un moyen de le faire apparaître à cet endroit-là?

Hors ligne

#4 Le 11/12/2016, à 00:19

krimo31

Re : [Résolu] Script ne se lance pas dans le terminal

J'ai finalement trouvé la solution ici:
http://superuser.com/questions/198015/o … -was-execu

Sinon, le comportement de MacOS pour les fichiers .command pourrait être reproduit en créant un nouveau mimetype et en y affectant le comportement du lien ci-dessus. Si quelqu'un s'y connaît assez pour me dire comment faire ça m'intéresse.

Hors ligne