web-dev-qa-db-fra.com

Comment exécuter un script en terminal quand on clique deux fois

Résumé: comment définir Run in Terminal comme action par défaut Nautilus en double-clic?

Je souhaite exécuter un script interactif en double-cliquant dessus. Pour interagir avec cela, je dois le voir fonctionner.

Si je gsettings règle org.gnome.nautilus.preferences executable-text-activation sur ask, cela me donne le choix; Run in Terminal fait ce que je veux; Run non, car lorsque le script doit me demander quelque chose, il se bloque. Cependant, je ne veux pas avoir à cliquer sur le Run in Terminal à chaque fois. Je veux le faire par défaut. Je l'ai déjà fait d'une manière ou d'une autre.

J'ai essayé de gsettings mettre org.gnome.nautilus.preferences executable-text-activation à launch; Cependant, cela ne fait que Run par défaut; Je ne vois pas comment rendre Run in Terminal par défaut.

J'ai également essayé d'insérer une commande gnome-terminal. Cela permet de faire apparaître une fenêtre de terminal (même lorsque simplement Run); Cependant, je dois alors envoyer toutes les commandes à cette fenêtre de terminal.

Alternativement, je sais comment envoyer (juste) la partie interactive du script à ce terminal, ce qui fonctionnerait pour moi; Cependant, dans ce cas, j'ai besoin que le script s'arrête jusqu'à la fin de la partie interactive, puis reprenne l'exécution. En règle générale, cela peut être accompli à l'aide de la commande wait; tel quel, la commande gnome-terminal semble fonctionner plutôt comme gnome-terminal&, en ce sens qu'elle cède le contrôle au script bash dès son lancement.

J'ai lu près de 10 doublons du fil Comment puis-je exécuter des scripts exécutables dans Nautilus? (y compris d'autres sites) et je ne trouve toujours pas ma réponse. Toute autre solution sera appréciée.

4
Alex

Pas littéralement ce que vous avez demandé, reste une option élégante, je crois:

Ajouter une option de clic droit pour exécuter un script sélectionné dans le terminal

  1. Créez un petit script:

    #!/bin/bash
    gnome-terminal -e $1 
    
  2. Enregistrez-le sous le nom run_interminal.sh dans ~/.local/share/nautilus/scripts. Créez le répertoire s'il n'existe pas.

  3. Rendre le script exécutable.
  4. Déconnexion et retour dans.

C'est ça. Sélectionnez un script et choisissez Scripts -> runinterminal.sh:

enter image description here

Alternativement glisser/déposer dans le terminal

Faites glisser un script (exécutable) sur un lanceur pour l'exécuter dans le terminal:

  1. Copiez le code ci-dessous dans un fichier vide et enregistrez-le sur votre bureau sous le nom run_script.desktop

    [Desktop Entry]
    Name=Run Script
    Type=Application
    Exec=gnome-terminal -e %u
    Terminal=true
    
  2. Le rendre exécutable

C'est ça. Désormais, lorsque vous faites glisser un script exécutable sur l'icône, il s'exécutera dans le terminal (gnome-).

Note importante

Comme mentionné, le script run_interminal.sh doit être exécutable pour apparaître dans le menu.
Tel qu'il est, le script à exécuter doit également être exécutable. run_interminal.sh peut facilement être configuré pour rendre automatiquement le script ciblé exécutable ou pour appeler un interprète. Si cela est nécessaire, veuillez mentionner.

2
Jacob Vlijm

Cette solution devrait fonctionner pour chaque:

  • gestionnaires de fichiers prenant en charge des "actions personnelles configurables".

  • les gestionnaires de fichiers configurés pour ouvrir les fichiers avec un double-clic.

  • x émulateurs de terminaux disposant d’options d’exécution: "-e" ou "--execute".

  • script qui a la permission d'être exécutable.

EDIT

Testé avec le gestionnaire de fichiers thunar et après cela, j'ai installé Nautilus et maintenant double-cliquez sur le script d'exécution pour les deux.

1- Faites un clic droit sur votre script

2- Sélectionnez "ouvrir avec"

3- Cliquez sur "Ouvrir avec une autre application"

4- Cliquez sur "ouvrir avec une commande"

5- Cochez "utiliser cette action pour ce type de fichier"

6- Entrez la commande suivante dans la zone de texte: x-terminal-emulator -e "/bin/bash %f"

7- Cliquez sur Ouvrir, votre script est exécuté dans la fenêtre du terminal.

8- Redémarrez votre gestionnaire de fichiers

Maintenant, chaque fois que vous double-cliquez sur un script, celui-ci sera exécuté.

0
user-707

Trouvé la solution courte à la question. L'ajout de --disable-factory aux options de gnome-terminal le fait attendre que le terminal se termine avant de continuer le reste du script.

0
Alex