Comment exécuter un script en double-cliquant sur les fichiers .EXE sous Windows?

116

Comment créer un script bash exécutable en double-cliquant sur les mêmes .exefichiers que Windows? J'ai essayé de créer un lanceur et de lui attribuer le script , mais il y a deux conséquences:

  1. le terminal scintille, disparaît et rien n'est fait.
  2. vous devez spécifier d’exécuter en terminal pour pouvoir fonctionner.

J'ai un script qui installe Tomcat sur un PC hors ligne, y compris toutes les dépendances de Tomcat dans le script. Je dois faire en sorte que le script fonctionne en double-clic, comme les fenêtres, car la plupart des utilisateurs du script ne seront pas familiarisés avec Ubuntu.

Oubliez l'explication ci-dessus. Je veux créer un script qui peut être exécuté en double-cliquant dessus, sans utiliser le terminal. Quelqu'un sait comment?

Communauté
la source
Je pense que vous écrivez peut-être mal votre fichier de bureau. Pouvez-vous poster ( mot à mot ) le lanceur .desktop que vous avez écrit?
Jjed
Aussi, avez-vous vu cela? askubuntu.com/q/34597/24694
Jjed
Son juste un lanceur où vous attribuez un nom et une commande pour faire ce n'est pas une si grande idée
3
muru m'a informé de cela, a travaillé pour moi: askubuntu.com/questions/286621/…
draoi
1
FYI pour les futurs visiteurs: Nautilus, le gestionnaire de fichiers par défaut d’Ubuntu, va apparemment supprimer la possibilité d’exécuter des exécutables dans les nouvelles versions en 2019 en raison de vulnérabilités. Un article sur le sujet et le code s’engagent sur GitLab avec discussion
Sergiy Kolodyazhnyy

Réponses:

134

J'ai testé cela et cela a bien fonctionné. Assurez-vous que votre script commence par le bon shebang , par exemple #!/usr/bin/env bash.

Suivez ensuite ces étapes:

  • Appuyez sur Alt+ F2pour exécuter une commande.
  • Tapez dconf-editoret tapez Enter.
  • Dans dconfg-editor, allez à: org ➤ gnome ➤ nautilus ➤ preferences
  • Cliquez sur executable-text-activationet dans le menu déroulant sélectionnez:

    lancer : pour lancer des scripts en tant que programmes.
    OU
    demander : demander quoi faire via un dialogue.

    capture d'écran

  • Fermez dconf-editor. C'est ça!

Manière alternative, utilisant le terminal: Run:

gsettings set org.gnome.nautilus.preferences executable-text-activation 'launch'

Remarque : le fichier doit être exécutable. Vous devrez peut-être également modifier l’autorisation du fichier. Faites un clic droit et définissez "Autoriser l'exécution du fichier en tant que programme"

capture d'écran

Source .

stevenmc
la source
Cela a très bien fonctionné. Juste une note, le "menu déroulant" est atteint en cliquant sur la valeur indiquée à droite de executable-text-activation(la valeur par défaut est display).
ryanjdillon
5
pour ceux qui ne peuvent pas appeler l'application, vous devez d'abord l'installer avecsudo apt-get install dconf-editor
whale_steward
1
Cela fonctionne partout sauf sur le bureau. Comment puis-je le faire fonctionner sur le bureau aussi? J'utilise Xubuntu 14.10.
Shin
Existe-t-il un moyen de faire cela dans LXDE (pour Lubuntu)?
Enfant du
Cela fonctionne très bien sous slax unix to - voir slax.org pour le système Unix vraiment génial que vous pouvez démarrer à partir d’une clé USB.
Raddevus
74

Sur Nautilus (Fichiers AKA)

  1. Allez dans Fichiers ( Édition sur Unity (17.04 ou moins))> Préférences> onglet Comportement

    capture d'écran

  2. Modifier les paramètres du fichier texte exécutable.

    capture d'écran

Anon
la source
3
Maintenant, "Fichiers -> Préférences". (17.04)
Juillet
Sucré! Le chemin à parcourir à mon humble avis.
codepleb
Comment voir la sortie?
Amr Lotfy
10

Dans Ubuntu et tous les systèmes d’exploitation Unix, rien n’est défini comme exécutable par défaut. Il y a deux façons de le faire.

  1. Faites un clic droit sur le script ou le fichier que vous souhaitez exécuter. Allez dans Propriétés puis dans l'onglet Autorisations. Cliquez sur la case à cocher qui dit Exécuter.

  2. Ouvrez un terminal cddans le répertoire où se trouve le fichier. Type . Cela définira le fichier à exécuter.chmod ugo+x filename

Désormais, vos utilisateurs peuvent double-cliquer à leur guise.

SomKit
la source
2
Il vous demandera toujours quoi faire avec run in terminal ou display ou run ... Donc ce n'est pas ce dont j'ai besoin
Seule cette réponse a fonctionné sur Gnome Ubuntu 17.04 pour rendre un fichier desktop exécutable
Kunok
C'est pour exécuter un fichier sur un terminal, pas en double-cliquant dessus.
DimiDak
8

Je pense que la création d'un fichier * .desktop manque ici:

$ cat shortcut-for-my-script.desktop
[Desktop Entry]
Type=Application
Terminal=true
Name=Click-Script
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c './script.sh;$SHELL'"
Categories=Application;

Si vous créez plusieurs fichiers * .desktop pour un même script, vous pouvez créer plusieurs configurations en transmettant différents paramètres, ce qui constitue un moyen très confortable et convivial.

h0ch5tr4355
la source
1
C'est la meilleure réponse pour Ubuntu. Notez que vous n’aurez peut-être pas besoin de spécifier (ou probablement pas?) Terminal=TrueEt Exec=gnome-terminalsauf si vous créez littéralement un raccourci pour un script dont vous voulez voir la sortie dans une fenêtre de terminal ... Notez également que vous pouvez pointer Iconsur quelque png vous voudrez peut-être ...
BuvinJ
6

Si vous utilisez XFce, vous pouvez exécuter un script dans Thunar en exécutant la commande suivante:

xfconf-query --channel thunar --property /misc-exec-shell-scripts-by-default \
             --create --type bool --set true

ou en utilisant l'interface graphique xfce4-settings-editoret en créant les mêmes propriétés.

Run xfce4-settings-editor, puis entrez:

  • /misc-exec-shell-scripts-by-default

  • Booléen

  • VRAI

image de xfce4-settings-editor

jubic
la source
Voici comment atteindre l'objectif avec des actions personnalisées dans Thunar (sans réactiver cette fonctionnalité "risquée").
Cipricus
Aussi ici sur comment utiliser Zenity et obtenir une question "Modifier ou exécuter?"
Cipricus
2

Vous devez vérifier 3 points:

  • Configuration de Nautilus / Nemo: https://askubuntu.com/a/286651/301025
  • Le fichier de script doit être exécutable : https://askubuntu.com/a/275714/301025
  • Le système de fichiers doit permettre l' exécution :

    1. Tapez mountune console
    2. Vérifiez si votre système de fichiers a le noexecdrapeau
    3. Supprimez l' noexecindicateur en modifiant /etc/fstabet remontez le système modifié (par exemple, un redémarrage fonctionne)
sangorys
la source
1

Lorsque vous créez un lancement dans Desktop avec un script SHEL ou autre, en ligne de commande, n'oubliez pas de signaler le script pour qu'il soit exécuté en arrière-plan.

Le script mourra quand il aura fini son travail.

Octávio Filipe Gonçalves
la source
1
je l'ai fait mais quel prob est le terminal juste scintille et rien ne se passe
1

En umaskfonction de la valeur de defualt, vous n'avez pas exécuté les autorisations pour les fichiers par défaut et vous devez changer le mod pour obtenir les autorisations d'exécution, comme ceci:

chmod u+x filename
Ali Dehghani
la source
1
Bouillon Ali bien sûr je l'ai fait c'est évident de le faire
0

En complément de la réponse à propos de Thunar : cette réponse réactiverait une fonctionnalité précédente de Thunar pour exécuter des scripts en double-clic. Mais cette fonctionnalité était considérée comme un risque de sécurité.

Pour éviter cela, la solution la plus élégante consiste peut-être à afficher une fenêtre contextuelle avec une question du type "Que voulez-vous avec ce fichier: Exécuter ou modifier?" (similaire à ce que vous avez dans d'autres gestionnaires de fichiers comme PCManFM et Nemo) lorsque vous cliquez sur ce fichier - en utilisant Zenity: ici .


Une alternative serait des actions personnalisées , peut-être la meilleure fonctionnalité de Thunar.

La commande que j'utilise pour exécuter un fichier texte exécutable est sh -c %f, pour une action personnalisée appelée "Script d'exécution / exécution".

entrez la description de l'image ici

Les conditions d'apparence sont simplement "texte":

entrez la description de l'image ici

Une commande similaire peut être utilisée pour exécuter dans un terminal un tel script ("Run in terminal"), tout en maintenant le terminal Xfce4 ouvert:

xfce4-terminal -H -x %f

entrez la description de l'image ici

Facultativement, et peut-être de préférence, afin de masquer ces options pour tous les fichiers texte, à l'exception des fichiers exécutables, vous pouvez limiter l'utilisation de l'apparence à des .shfichiers (ou aux .pyfichiers si nécessaire, etc.), sous "Conditions d'apparence":

entrez la description de l'image ici

- avant de renommer les fichiers exécutables en conséquence.

cipricus
la source
-1

Spécialement pour Android Studio Vous pouvez suivre ma réponse originale ici :

Pour créer un lanceur de bureau:

  • Cliquez sur Create Desktop Entry..dans le menu Outils .

entrez la description de l'image ici

  • Il vous sera demandé un mot de passe, entrez le mot de passe de votre connexion actuelle.

  • Enfin, la notification s'affichera sur l'écran d'Android Studio comme suit:

entrez la description de l'image ici

  • Vous pouvez voir dans Applications => Programmation => Android Studio et également sur le bureau après le redémarrage du système.

Je vous remercie. :)

Pratik Butani
la source