clique duas vezes para executar o arquivo .sh

clique duas vezes para executar o arquivo .sh

GUI:
Alterei as permissões de um arquivo sh para poder lê-lo, gravá-lo e executá-lo. Cliquei duas vezes nele, selecionei executar no Shell/terminal (o que aparecer em inglês), mas não funcionou. Cliquei duas vezes nele, selecionei executar, mas não funcionou.

Linha de comando:
bash *filename*executa,
sh *filename*executa

O conteúdo do arquivo é:

#!/bin/bash

# get dirsyncpro home
DIRSYNCPRO_HOME="$(dirname $0)"

# start programm and pass any parameters
java -Xmx512M -jar "$DIRSYNCPRO_HOME/dirsyncpro.jar" $* 

Funciona no computador desta pessoa:

http://www.knowliz.com/2008/08/how-to-installrun-sh-file-in-linux.html

O que está acontecendo?

Responder1

Seu teste está errado, você deve conseguir executá-lo sem primeiro chamar outro shell.

./my_little_script.sh

E não

bash my_little_script.sh

Verifique também se as permissões estão realmente corretas.

chmod 755 my_little_script.sh

Responder2

Seu problema é que quando você tenta executar seu script de shell clicando duas vezes nele, seu sistema, por padrão, irá executá-lo em seu diretório inicial.

Ao chegar na fila

# start programm and pass any parameters
java -Xmx512M -jar "$DIRSYNCPRO_HOME/dirsyncpro.jar" $* 

A DIRSYNCPRO_HOMEpasta não é a pasta que você esperava, seu arquivo jar não foi encontrado e o aplicativo será interrompido silenciosamente. Eu acho que se você codificar o valor de DIRSYNPRO_HOMEvocê poderá executar seu script de shell clicando duas vezes nele.

Responder3

No Ubuntu, “Terminal” realmente não existe. Na minha instalação (9.10), recebo isto:

O programa 'Terminal' não está instalado atualmente. Você pode instalá-lo digitando: sudo apt-get install terminal.app Terminal: comando não encontrado

Não tenho certeza se esse é o seu caso, mas se for, tente alterar a seleção de "Termianl" para "gnome-terminal".

Responder4

O leia-me do dirsyncpro diz que ele deve ser executado por linha de comando em todos os sistemas operacionais não Windows. Eu estava evitando executar o arquivo jar, mas não tem outro jeito.

informação relacionada