Je veux créer un bouton sur mon lxpanel pour lancer un programme qui affiche Hello World!
dans un lxterminal contextuel. J'utilise donc la technique que j'ai précédemment implémentée avec succès dans Debian 7, à savoir:
gedit /bin/hello.sh
(contenu ci-dessous):
#!/bin/bash
echo 'Hello World!';
gedit /usr/share/applications/hello1.desktop
(ci-dessous):
[Desktop Entry]
Version=1.0
Type=Application
Name=Hello1
Comment=Test the terminal running a command inside it
Exec=lxterminal -e "/bin/hello.sh"
StartupNotify=true
Icon=utilities-terminal
Terminal=true
Categories=Utility;
Dernier I chown
et chmod
les deux fichiers ci-dessus comme ci-dessous:
-rwxr-xr-x 1 a adm 230 1月 1 13:02 /usr/share/applications/hello1.desktop*
-rwxr-xr-x 1 a adm 240 1月 1 12:57 /usr/share/applications/hello1.desktop~*
-rwxr-xr-x 1 a adm 194 1月 1 12:04 /usr/share/applications/hello.desktop*
-rwxr-xr-x 1 a adm 195 1月 1 12:03 /usr/share/applications/hello.desktop~*
-rwxrwxr-x 1 a adm 87 1月 1 12:35 /usr/share/applications//bin/hello.sh*
-rwxrwxr-x 1 a a 87 1月 1 12:25 /usr/share/applications//bin/hello.sh~*
-rwxrwxr-x 1 a adm 134 12月 13 09:56 /usr/share/applications//bin/hello_world.sh*
Malheureusement, quoi que je fasse, le fichier hello1.desktop
ne peut ouvrir qu'un lxterminal vide et il n'y a pas de sortie.
J'utilise Lubuntu 14.04 et j'ai suivi les tutoriels suivants pour lier un fichier de bureau à un programme de script * .sh:
J'ai aussi fait les variations suivantes à hello1.desktop
:
la ligne 6 (la ligne "Exec") - a essayé ceci:
Exec=sh /bin/hello.sh;
Exec=lxterminal -e “/bin/hello.sh”
Exec=/bin/hello.sh
Exec=sh -c /bin/hello.sh
Exec=lxterminal -x sh -c 'echo hello'
Exec=sh -c 'gnome-terminal echo hello'
Exec=sh -c 'echo hello'
Exec=sh /bin/hello.sh
Exec=sh -c /bin/hello.sh
Mais à la fin, ils sont tous identiques (sauf lorsque Terminal=false
sur la ligne 9, il n’existe évidemment pas de terminal).
Je peux voir hello1
sous Système -> Accessoires, mais lorsque je clique dessus, un écran vide apparaît. Dans Debian 7.5 LXDE Wheezy, il est très facile de le faire avec succès, mais qu’est-ce qui ne va pas dans Lubuntu 14.04 pour rendre cela tellement plus difficile?
Andrew
J'ai réussi à dupliquer votre problème et à avoir une solution.
Comme votre recherche vous l'a dit, votre problème initial était d'avoir:
Terminal=true
ensemble avec:
Exec=lxterminal -e /bin/hello.sh
Le seul problème est que, lorsque vous utilisez:
Terminal=false
le terminal se ferme après l'exécution du script, bien qu'il exécute votre script. Votre script produisant si peu d’impressions, il n’est humainement pas possible de voir cela se dérouler. Cela ressemble donc à un "écran vide qui apparaît".
Autant que je sache (de man lxterminal
et de Google), il n’existe aucun moyen spécifique de demander à lxterminal de rester ouvert après l’exécution d’un script. Vous devez donc modifier le script bash (c.-à-d. Votre hello.sh ) lui-même.
Par exemple, vous pouvez ajouter l’un des éléments suivants à la fin de votre script.
echo "Press [ENTER] to exit" && read
/bin/bash
Pour plus d'informations sur le problème général lié à l'arrêt de la fermeture du shell après l'exécution d'une commande, y compris des informations sur les autres émulateurs de terminal, voir: Comment exécuter un script sans fermer le terminal?
En passant, le point-virgule à la fin du fichier Desktop ne fait rien, vous pouvez donc aussi le supprimer.
Résumé : La seule modification à apporter au fichier de bureau d'origine est Terminal=false
, mais vous devez ajouter une ligne à la fin de votre script bash si vous voulez voir que le script a été exécuté.