Atalho do Shell Script Desktop

3

Então, tentei criar um atalho na área de trabalho que executa um script de shell muito simples. Mas quando clico duas vezes / clique com o botão direito - > executá-lo, não faz nada. (ou pelo menos eu acho que não faz nada)

heres como meu atalho e script de shell se parece: Observe que o atalho tem "Terminal" definido como 1, e espero que isso signifique abrir o script de shell em uma nova janela de terminal ... (tenho dois terminais já abertos, que não estão prontos para uso (com scripts em execução))

Atalho:

[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

Shell Script:

#!/bin/sh
# (I tried both, /bin/bash and /bin/sh)
echo "hi"
    
por DeadSix17 19.02.2013 / 02:32

2 respostas

5

A entrada da área de trabalho e o script de shell devem ter permissões executáveis. Faça:

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

Outra maneira de alterar as permissões de um script é clicar com o botão direito do mouse, vá para Propriedades > Premissions e verifique Permitir a execução do arquivo como programa .

    
por ignite 19.02.2013 / 02:57
0

Apenas no caso de alguém vir aqui a partir da pesquisa no google ... Em 14.04 tem sido uma dor na parte traseira para executar o shell script que inicia o Android Studio para mim na unidade montada. Tentei várias coisas, mas nada funcionou para mim. Eventualmente tive que escrever abaixo código e compilar com:

gcc -o studio studio.c 

e, em seguida, crie um atalho para "studio" na área de trabalho e agora ele finalmente funciona como deveria.

Aqui está o código de amostra, você pode substituir o caminho (/media/.../studio.sh) nessa chamada do sistema após / bin / sh. Certifique-se de que é um caminho completo e deixe "/ bin / sh" na frente.

#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;
}
    
por Jenya G 21.10.2014 / 15:56