Criando um programa executável com um script de shell ..?

1

Eu fiz dois arquivos de script shell (.sh), audio.sh e video.sh para meu projeto Pi CCTV.

E eu combinei esses dois scripts:

sh -x video.sh & sh -x audio.sh &

Eu coloquei o comando acima em um arquivo shell e finalmente fiz o arquivo test.sh , que agora lana os dois arquivos shell simultaneamente.

No entanto, não estou satisfeito com a execução do comando: sudo ./test.sh . Eu gostaria de fazer um arquivo executável (clique duas vezes e iniciar), que pode lançar test.sh .

Há um vídeo do YouTube demonstrando que é possível fazer um script da Apple no Mac OS (vinculando os dois arquivos, compilar e executar) e exportá-lo por um programa executável (formato .app). Se o programa for iniciado, os dois scripts de shell serão lançados juntos em duas janelas do Terminal, como você vê no vídeo: link

É possível fazer uma coisa dessas no Ubuntu 16.04?

Criando um programa que executa os dois scripts de shell simultaneamente?

Alguma idéia?

    
por Felix Lee 24.12.2017 / 14:47

1 resposta

3

Um arquivo .desktop fornecerá o que você deseja.

Crie o seguinte arquivo, com um nome de arquivo como ANYTHING.desktop :

[Desktop Entry]
Encoding=UTF-8
Exec=gksudo /MAKE/THIS/THE/PATH/TO/test.sh
Path=/MAKE/THIS/THE/PATH/TO/THE/OTHER/FILES
Type=Application
Terminal=true
Name=Pi CCTV project
Categories=AudioVideo;

Salve onde quiser, por exemplo em ~/Desktop , e ele será executado quando você clicar nele.

Como alternativa, salve-o em ~/.local/share/applications se quiser que ele apareça no seu menu.

Isso executa test.sh com gksudo em vez de sudo , para fornecer uma caixa de diálogo de senha gráfica.

Em test.sh , adicione um wait ao final da seguinte forma:

sh -x video.sh & sh -x audio.sh & wait

Isso é necessário para que a janela não feche até que ambos os programas tenham terminado.

Se você realmente quiser duas janelas, altere test.sh para:

xterm -e sh -x video.sh & xterm -e sh -x audio.sh & wait

e altere Terminal=true para false no arquivo .desktop .

    
por Martin Thornton 24.12.2017 / 17:23