Atalho para o script terminal / bash sem 'fechamento instantâneo'

2

Eu criei uma entrada na área de trabalho em ~/.local/share/applications . Parece semelhante ao seguinte:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Crontona Server
GenericName=CA Server
Comment=BDAF server for Crontona
Exec=bash "/usr/local/crontona/run.sh"
Icon=/usr/local/crontona/app.ico
Terminal=true
Type=Application

Ele aparece no lançador do Unity e em tudo, mas sempre que eu clico nele, o terminal simplesmente aparece, mas se fecha instantaneamente. Eu não tenho problemas em usar 'bash ./...run.sh', mas não tive sucesso no menu. Alguma idéia do porquê isso acontece?

Este é o conteúdo do arquivo run.sh:

#!/bin/bash
./corona_run -prot tcp +maxcon 16
    
por Elliott Darfink 08.05.2012 / 20:46

1 resposta

0

Adicione o comando read x como a última linha em run.sh. Esta leitura fará com que a janela de comando permaneça aberta até que você pressione retornar. Se alguma mensagem for exibida, isso dará tempo para lê-las.

O read é a chave. Aqui está um script de shell (eu prefiro que ele bash embora bash esteja se tornando tão popular). BTW, o .sh no final significa shell script, não script. Você pode alterar sua opção Exec do ativador para:

Exec="/usr/local/crontona/run.sh"

E use o seguinte script run.sh ...

#!/bin/sh
./corona_run -prot tcp +maxcon 16
echo -n Press enter to end...
read x
echo Ending Now\!

Repare que escapei do! no final agora. Essa última linha não é necessária, a menos que você esteja executando o script dentro de um terminal e queira fazer com que ele seja executado. Dessa forma, se o terminal aparecer e o script for executado dentro do terminal, o script não sairá até que você pressione enter para que o terminal não seja fechado até que você esteja pronto.

    
por Hey Gary 27.07.2012 / 17:09