Script simples - executa o comando no arquivo selecionado

1

Eu quero fazer um script que execute o arquivo .jar no arquivo selecionado. Mais tarde vou adicionar esse script para clicar com o botão direito do mouse no menu através da ferramenta Nautilus Actions ou simplesmente colocá-lo na pasta nautilus-scripts. Eu tenho um problema ao criar um script.

Quando estou em uma tela de console comum e quero executar esse arquivo jar em qualquer outro arquivo, eu uso essa sintaxe

myfile.jar ./someotherfile.xml

e o arquivo jar gravará a saída na tela do console.

Então criei um arquivo script.sh, adicionei linhas nele

#!/bin/bash
/home/username/myfile.jar 

Mas não produz nada. Eu sei que estou fazendo algo errado. Por favor ajude.

Para somar , eu preciso de um script que use o arquivo selecionado como parâmetro, abra o gnome-terminal, dentro desse terminal ele vai iniciar o arquivo JAR e passar o arquivo selecionado.

Estou confiante de que este é um procedimento muito simples, mas sou totalmente inovador com scripts de shell.

    
por ubuntico 23.06.2011 / 10:59

3 respostas

2

Você também pode escolher

!/bin/sh
gnome-terminal -x java -jar /home/askmoo/myfile.jar ""

para primeiro abrir o terminal do gnome e depois executar seu aplicativo java nele. Desta forma, você seria capaz de obter saída impressa para o terminal.

    
por tesseract 23.06.2011 / 12:38
1

Há sempre um pop-up de "propriedades de clique com o botão direito" para executáveis (e ícones) na área de trabalho e pastas no Gnome, KDE e outros. Eu não tenho certeza de como você faria isso com a extensão de ações do nautilus, mas você sempre pode forçar seu terminal a travar após um comando sair assim:

$ cat > /usr/local/bin/har.sh
#!/bin/sh
java -jar /home/jaroslav/tmp/src/hat/bin/hat.jar
while true;do  
read  -p "finished reading? " quit; 
[[ "$quit" == "yes" ]] && exit
done 

$ chmod 755 /usr/local/bin/hat.sh
$ hat.sh

Usage:  hat [-stack=<bool>] [-refs=<bool>] [-port=<port>] [-baseline=<file> -debug=<int>] [-version] <file>

        -stack false:     Turn off tracking object allocatoin call stack.
        -refs false:      Turn off tracking of references to objects
        -port <port>:     Set the port for the HTTP server.  Defaults to 7000
        -exclude <file>:  Specify a file that lists data members that should
                          be excluded from the reachableFrom query.
        -baseline <file>: Specify a baseline object dump.  Objects in
                          both heap dumps with the same ID and same class will
                          be marked as not being "new".
        -debug <int>:     Set debug level.
                            0:  No debug output
                            1:  Debug hprof file parsing
        -version          Report version number
        -donationware     Give information on the status of HAT
        <file>            The file to read

For a JDK 1.2 (or better) dump file, you may specify which dump in the file
by appending "#<number>" to the file name, i.e. "foo.hprof#3".

All boolean options default to "true"

finished reading? no
finished reading? ^C
$

dê ao terminal CTRL + C para sair (ou digite yes)

existe também o diálogo properdies: .. ok, eu olhei apenas pelas propriedades do nautilus ... sem sorte (eu odeio o gnome, eles continuam tornando-o mais burro e mais burro)

Ainda está disponível no KDE: (mas id logo use o loop infinite-while), o número de caixas para navegar para chegar a essas configurações é simplesmente impressionante.

    
0

./myfile.jar e myfile.jar são dois comandos diferentes. O primeiro executa um arquivo no diretório atual (desde que o bit de execução esteja definido), o último pesquisa $PATH para um programa chamado myfile.jar .

Se $PATH for /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games , ele pesquisará (em ordem):

/usr/local/sbin/myfile.jar
/usr/local/bin/myfile.jar
/usr/sbin/myfile.jar
/usr/bin/myfile.jar
/sbin/myfile.jar
/bin/myfile.jar
/usr/games/myfile.jar

Eu duvido que o seu arquivo jar seja realmente um executável, se for um Java ARchive, seu shellscript deve ser:

#!/bin/sh
java -jar /home/askmoo/myfile.jar ""
    
por Lekensteyn 23.06.2011 / 12:04