15 de jul. de 2015

Deixe seu shell script mais user-friendly

Tem certos comandos que usamos rotineiramente e alguns programas que ainda não foram desenvolvidos com interface gráfica. Para isso criamos um Shell Script, o esquema é o mesmo do Batch do Windows, criamos um arquivo de texto com os comandos e salvamos como .sh.

Mas por alguma configuração estranha na versão 15.04, o Ubuntu não executa os .sh no terminal, tentei até o "abrir com", mas o terminal não aparece na lista... Precisava resolver esta situação, como deve ter visto no post sobre como verificar os níveis de tinta, não existe nada gráfico que funcione para a minha impressora e minha mãe (como a maioria das mães!) não é muito familiarizada com o terminal.

A solução foi fazer o Ubuntu reconhecer o .sh como um programa e fazer o resultado do comando aparecer como uma notificação. Olha que gracinha!



Parte 1 - Criar o Shell Script


Primeiro vamos criar o Shell Script no gedit ou no seu editor de texto preferido e salvar com a extensão .sh.
notify-send "$(echo senha | sudo -S comando)" 
notify-send - comando para exibir a notificação
$ - executa o comando no terminal
echo senha - envia a senha para o terminal (troque a palavra senha pela sua senha, ok?)
| - concatena os comandos do terminal
sudo - roda o comando como superusuário (administrador)
-S - usa a senha enviado anteriormente
comando - comando/programa que quer rodar no terminal
Obs: Esta é a forma mais simples da notificação. Você pode personalizar com alguns parâmetros simples. Para saber mais consulte esta matéria: http://elcio.com.br/notify-send-notificacoes-do-gnome-em-seu-shell-script/

Para ver se seu script está funcionando use o seguinte comando no terminal:
sh caminho/nomedoarquivo.sh
 Se estiver funcionando vamos para a parte 2.

Parte 2 - Fazer o Ubuntu reconhecer o .sh como um programa normal


Abra seu editor de texto preferido novamente e cole o seguinte código:
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
StartupNotify=true
Name="Meu programa"
Exec="caminho/nomedoarquivo.sh"
Categories=Utility;System;
Comment="Nada a declarar"
Icon=caminho/icone.png
Name - Nome que vai aparecer no menu
Exec - localização do arquivo .sh
Categories - Categoria do programa. Não sei se alterar isso faz alguma diferença.
Comment - É aquele texto que aparece quando deixa o mouse em cima
Icon - Ícone do programa
Salve o arquivo com a extensão .desktop no diretório /home/seuusuario/.local/share/applications. Como deve ter percebido tem um ponto antes do nome da pasta, é uma pasta oculta. Para deixar ela visível use o atalho ctrl + h. Para o sistema reconhecer o novo atalho use o atalho ctrl + F2, digite unity e dê enter. A área de trabalho vai reiniciar. Vamos agora ao último passo.

Passo 3 - Se gabar de ter feito um programa para Ubuntu


Pronto, abra seu querido programa pelo menu do Ubuntu e tire onda dos seus amigos! #OlhaEuQueFiz



Nenhum comentário:

Postar um comentário