Question Les fichiers ne fonctionneront pas comme des programmes [dupliquer]


Cette question a déjà une réponse ici:

Après avoir lu une réponse sur la façon de faire un fichier exécuter une commande dans le terminal lorsqu'il est exécuté, J'ai essayé de le faire moi-même.

J'ai fait un nouveau document, entré les éléments suivants et enregistré.

#! /bin/bash

echo "this is a test"

Je suis ensuite allé à Right-Click > Properties > Permissions et coché "Autoriser l'exécution du fichier en tant que programme".

Cependant, lorsque je double-clique sur le document, il s'ouvre simplement dans mon éditeur de texte (que je pense être gedit). Dans le menu contextuel, je ne vois aucune option pour exécuter le fichier dans le terminal.

J'ai aussi essayé de le faire avec d'autres fichiers. Par exemple, j'ai installé WINE et j'ai essayé d'installer un programme Windows. WINE a dit de simplement lancer l'installateur, mais rien ne se passerait quand j'ai essayé. Je l'ai marqué pour fonctionner en tant que programme et cela ne fonctionnerait toujours pas. Je ne pouvais l’installer que par Right-Click > OpenWith et en sélectionnant VIN.

Curieusement, j'ai copié mon dossier portable Keepass-2.28 de ma partition Windows sur ma partition Ubuntu et j'ai essayé d'exécuter l'exécutable. Keepass a ouvert le feu, même si je n'avais pas marqué ce fichier pour qu'il s'exécute en tant que programme. Keepass 2.25 du référentiel est installé sur mon système si cela fait une différence.

J'utilise Ubuntu 14.04 dans une configuration à double démarrage depuis plusieurs semaines. La seule chose que je puisse comprendre est que j'ai utilisé Synaptic Package Manager pour supprimer un paquet de KDE Desktop Environment pour tenter de désinstaller un autre environnement de bureau que j'ai installé via le terminal. Je ne me souviens pas de ce que le paquet était, mais le seul paquet dans cette catégorie est actuellement appmenu-qt5. Autant que je sache, la suppression de ce paquet n'a rien affecté, et je suis sûr que j'avais des problèmes avec l'exécution de fichiers en tant que programmes depuis que j'ai eu mon Ubuntu.

EDIT: J'ai vérifié, et je ne pense pas que cette question est un doublon de cette question. Mon Ubuntu est sur une partition ext4 et c'est à partir de là que j'essaie d'exécuter des programmes. Je n'ai pas non plus essayé de modifier les autorisations via le terminal ou quelque chose comme ça, j'essaie juste de faire fonctionner le programme lorsque je coche l'option dans le menu des propriétés. Corrigez-moi si je me trompe ou si je manque quelque chose.


0
2018-03-13 10:36


origine


@muru je ne le pense pas. J'ai expliqué dans un montage. - Trae7
Pas tout à fait sûr de ce que vous aviez en tête, mais la leçon de cet exercice est la suivante: ce n'est pas si simple. Tous les fichiers ne sont pas des programmes, tous les fichiers ne peuvent pas être exécutés en tant que programmes, tous les fichiers ne doivent pas être exécutés du tout, et un double-clic n'est souvent pas la bonne façon de le faire, etc. - mikewhatever
@ Tout ce que je comprends, Mikew Je ne tente pas d'exécuter un .png ou quelque chose comme ça en tant que programme. J'essaie plutôt de suivre les instructions dans la question à laquelle j'ai lié au début du post, et cela ne fonctionne pas. Le fichier ne s'exécute pas comme le spécifie la réponse. - Trae7
Dans les préférences du navigateur de fichiers (Édition-> Préférences), il devrait y avoir une option concernant l’ouverture des fichiers exécutables. Est-il réglé sur ~ view? - muru


Réponses:


Aider a Right-Click > Properties > Permissions explique ce comportement:

Si le fichier est un programme, tel qu'un script, vous devez sélectionner Autoriser   exécuter le fichier en tant que programme pour l'exécuter. Même avec cette option sélectionnée,   le gestionnaire de fichiers peut toujours ouvrir le fichier dans une application ou vous demander   Que faire. Voir Fichiers texte exécutables pour plus d'informations.

Lorsque vous double-cliquez sur un script, l'action par défaut consiste à l'ouvrir dans l'éditeur. Pour changer cette option:

  1. Cliquez sur les fichiers dans le lanceur, sélectionnez Edit > Preferenceset ensuite l'onglet Comportement:

    enter image description here

  2. Sélectionnez l'action par défaut lors de l'ouverture d'un fichier texte exécutable:

    • Exécuter des fichiers texte exécutables lorsqu'ils sont ouverts
    • Afficher les fichiers texte exécutables lorsqu'ils sont ouverts
    • Demander à chaque fois

"Demander à chaque fois" est probablement le bon réglage ici, car vous ne voulez certainement pas exécuter accidentellement un script lorsque vous souhaitez simplement ouvrir un fichier texte, d'autant plus que les fichiers texte exécutables et non exécutables partagent la même icône.


2
2018-03-13 11:28



Je reçois maintenant une invite lorsque je double-clique sur le fichier me permettant de l'exécuter ou de le visualiser. Merci beaucoup! - Trae7


Je pense que vous devez modifier les paramètres du gestionnaire de fichiers pour qu'il exécute directement le script bash ou vous demande si vous souhaitez exécuter le script ou afficher le code.

Je ne sais pas si la version actuelle du gestionnaire de fichiers d'Ubuntu fonctionne de la même manière, mais il y a quelques années, le correctif était le suivant:

"Ouvrez le gestionnaire de fichiers Nautilus et cliquez sur la roue dentée (Options de localisation) dans le coin supérieur droit de la fenêtre. Accédez à Préférences - Préférences de fichier - Comportement - Fichiers texte exécutables. Un ensemble de boutons radio permet de choisir l’option par défaut. Je préfère "Demander à chaque fois". Ensuite, lorsque je double-clique sur un fichier de script, je peux lancer le script ou afficher (modifier) ​​son contenu. "

(Voir: https://linuxnorth.wordpress.com/2013/11/02/running-bash-scripts-in-ubuntu/)


0
2018-03-13 11:29





modifier: Cette solution fonctionnera pour des fichiers uniques, mais si vous cherchez à modifier ce comportement à l'échelle du système (pour chaque fichier texte exécutable), consultez les autres réponses.


Vous devrez créer un .desktop fichier pour exécuter le script directement à partir de Nautilus:

  1. Créer un .desktop déposer à l'emplacement souhaité: gedit /<path_to_dektop_file>/test.desktop
  2. Collez le code ci-dessous
  3. sauvegarder
  4. Sortie
  5. Rendre le fichier exécutable: chmod u+x /<path_to_dektop_file>/test.desktop

Code:

[Desktop Entry]
Type=Application
Name=Test
Exec=/<path_to_shell_script>/test.sh

Ensuite, double-cliquez sur le bouton .desktop fichier créé.


0
2018-03-13 11:23



Belle solution mais elle ne dégénère pas bien car elle nécessite un fichier de bureau pour chaque script unique vous voulez courir de Nautilus. - jaume
@jaume vrai, je l'ai clarifié - kos