web-dev-qa-db-fra.com

Shell Script Desktop Raccourci

J'ai donc essayé de créer un raccourci sur le bureau qui exécute un script Shell très simple. Mais quand je double/clic droit-> l'exécuter, il ne fait rien. (ou du moins je pense que ça ne fait rien)

voici à quoi ressemblent mon raccourci clavier et mon script Shell: Notez que le raccourci "Terminal" est défini sur 1, et j'espère que cela signifie qu'il ouvre le script Shell dans une nouvelle fenêtre de terminal .. (j'ai quelques terminaux déjà ouverts qui ne sont pas prêts) pour utilisation (avoir des scripts en cours))

Raccourci:

[Desktop Entry]
Version=1.0
Type=Application
Name=Test
Comment=Test
Exec=/home/(myusername)/test/test.sh
Icon=utilities-terminal
Terminal=true
StartupNotify=false
GenericName=Test

Script shell:

#!/bin/sh
# (I tried both, /bin/bash and /bin/sh)
echo "hi"
4
DeadSix17

L'entrée de bureau et le script Shell doivent tous deux disposer d'autorisations exécutables. Faire:

$ chmod +x path_to_shortcut/shortcut.desktop
$ chmod +x path_to_script/test.sh  

Un autre moyen de modifier les autorisations d'un script consiste à cliquer dessus avec le bouton droit de la souris, aller à Propriétés> Prémissions et cocher Autoriser l'exécution du fichier en tant que programme.

Permissions

6
ignite

Juste au cas où quelqu'un viendrait ici de google search ... En 14.04, il était très difficile d'exécuter un script Shell qui lance Android Studio pour moi sur le lecteur monté. J'ai essayé de nombreuses choses, mais rien n'a fonctionné pour moi. Finalement, il a fallu écrire sous le code et compiler avec:

gcc -o studio studio.c 

puis créez un raccourci vers "studio" à partir du bureau et il fonctionne enfin comme il se doit.

Voici l'exemple de code, vous pouvez remplacer le chemin (/media/.../studio.sh) dans cet appel système après/bin/sh. Assurez-vous que le chemin est complet et laissez "/ bin/sh" devant.

#include <stdio.h>
int main(void) {
  int ret = system("/bin/sh /media/jeneag/APPS/linux/Android-studio/bin/studio.sh");
  printf("app ret code: %d\n", ret);
  return 0;
}
0
Jenya G