
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_HOME
pasta 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_HOME
você 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.