Usando o SHC um compilador de Shell-Script genérico

Publicado por Raimundo Alves Portela em 05/07/2011

[ Hits: 24.365 ]

Blog: http://portelanet.com

 


Usando o SHC um compilador de Shell-Script genérico



Apresento o SHC (Shell Script Compiler) um compilador de Shell Scripts, que nos permite gerar um arquivo binário compilado dos nossos scripts, que na minha avaliação, é útil para que seu script ganhe um forma simples de ser executado, apenas com 2 cliques no arquivo, útil para facilitar a execução do script.

O SHC geralmente é usado para compilar um script, possibilitando que você distribua o arquivo compilado, onde o usuário não vai ter acesso ao codigo fonte do scritpt. Então, porque uma Dica que ensina a fechar o código em uma página de software livre?

Calma, já vi que temos a dica SHC- Compilando-seu-shell-script, e li também algumas críticas sobre fechar o código com ele, também concordo com as críticas, mas nessa Dica foco o objetivo de permitir ao usuário uma facilidade para executar o script, e não ter que toda hora abrir um terminal para executá-lo, ou mesmo dar 2 cliques e saber que deve-se clicar em "Executar em Terminal" depois.

Só pra criticar um pouco mais, tem a opção de colocar prazo de expiração de uso :-), mas nem vou citar muito sobre isso, poderão ver no manual oficial, após instalar, com o comando:

man shc

Sinceramente acho uma opção desnecessária para o mundo do Software Livre.

O bom da ferramenta é que podemos disponibilizar uma forma fácil para o usuário executar seu script, se quiser disponibilizar o código também, basta enviar junto o script, fica a seu critério.

Vamos lá, baixe o shc em:
Descompacte o arquivo:

tar -xzf shc-3.8.6.tgz
cd shc-3.8.6

Execute o seguinte comando, para instalar (não precisa de ./configure e nem make):

sudo make install

Vai perguntar para você:

***   Installing shc and shc.1 on /usr/local
***   �Do you want to continue?

Confirme digitando y e tecle <ENTER>

Pronto, agora temos o SHC instalado, e você já pode ver a gama de opções agradáveis e desagradáveis dele :-)

Para scripts que usem interface gráfica, através do Zenity, Yad, etc, pode-se simplesmente usar o comando:

shc -f nome_do_script.sh

Pronto ele vai criar os arquivos nome_do_script.sh.x (executável compilado) e nome_do_script.sh.x.c (código em c).

Para disponibilizar seu script e/ou executá-lo com apenas dois cliques do mouse, basta clicar 2 vezes no arquivo nome_do_script.sh.x, coloque ícones, brinque a vontade.

Há um porém, se seu script não usa interface gráfica, mas vai ser executado dentro de um ambiente gráfico, como Gnome, ele não tem como saber que deve abrir um terminal como o gnome-terminal, para depois executar o script, então criei um rápido truque :-)

Para demonstrar, peguei o script que disponibilizei na área de scripts do Vol: Sorteio.

Ok, baixe esse script ou use um seu e vamos ao truque:

Se você simplesmente executa-se o comando shc -f sorteio.sh, não vai abrir nada clicando no arquivo sorteio.sh.x, para solucionar o problema eu crio um outro script, responsável por abrir o nosso script alvo (usei o editor de texto nano, podem usar qualquer outro):

nano abre_script.sh

Cole o conteúdo:
#!/bin/bash
gnome-terminal -e ./sorteio.sh

Para salvar, digite: <CTRL+O>, e para sair do nano: <CTRL+X>

Agora compilamos o script que acabamos de criar:

shc -f abre_script.sh

Será gerado o arquivo abre_script.sh.x, que agora podemos usar para abrir nosso script diretamente no gnome- terminal.
Linux: Usando o shc um compilador de shell script genérico.
Espero ter contribuído com o conhecimento de alguém.


Outras dicas deste autor

Venha Conhecer o Yad

Shell Script no Eclipse - It is possible!

Habilitar Cgi-Shell no Apache2

Adquira a Linux Magazine Community

Conversando em rede com Pidgin e o protocolo Bonjour

Leitura recomendada

Redirecionadores

TestKing LPI 101

Siafi no Ubuntu 9.04

Netbook Philco PHN 10001

Instalando o Debian a partir de um HD

  

Comentários
[1] Comentário enviado por julio_hoffimann em 05/07/2011 - 19:48h

Oi Raimundo,

Dica interessante, não conhecia o SHC. Talvez se enquadre em alguma aplicação específica, mas como você mesmo disse, nada melhor que ter o código em mãos. ;-)

Abraço!

[2] Comentário enviado por AprendiNoLinux em 06/08/2011 - 12:11h

Valeu pelas dicas.

Segui conforme solicitado, mas...


password for administrador:
*** Installing shc and shc.1 on /usr/local
*** �Do you want to continue? y
install -c -s shc /usr/local/bin/
install -c -m 644 shc.1 /usr/local/man/man1/
install: o alvo "/usr/local/man/man1/" não é um diretório: Arquivo ou diretório não encontrado
make: ** [install] Erro 1


O que fazer agora ?

Obrigado.
ps: Se o local não é adequado, passarei esta pendência ao forum da comunidade.

[3] Comentário enviado por kepas em 07/01/2012 - 22:36h

Olá Raimundo,

cara ajuda a gente aiiii, o link ta quebrado para fazer download do shc, e no debian 6 ele não acha no repositório.

se você tiver um link que ta funfando, manda pra gente, ou se você mesmmo tiver o programa compartilha ae!!!

Agradeço desde já!

[4] Comentário enviado por rai3mb em 08/01/2012 - 02:29h

Estranho mesmo, procurei na internet e não vi nenhum link funcionando.

Bom, tenho uns backup dele se quiser envio diretamente pra você.


[5] Comentário enviado por kepas em 10/01/2012 - 18:40h

Opaaaaaaa,
o link voltou a funcionar!!

Cara obrigado pelo atenção e parabéns pelo tutorial.

E haa... com relação aquele assunto se é certo fechar o código em uma plataforma de software livre, eu acho que é questão de situação. No meu caso, tenho um server de arquivos que faz backup em um server na minha rede e outro na nuvem, e o script de backup contém informações dos server como ip, usuarios e senhas. Então nesse caso é uma forma de proteger o script caso venha cair em mãos erradas!!


Esse tutorial salvou minha vida, :)

Obrigado.
Um grande abraço.

[6] Comentário enviado por rai3mb em 10/01/2012 - 21:26h

Beleza, que bom que foi útil para você!

[7] Comentário enviado por MiquieasReale em 21/07/2015 - 21:48h

Link oficial
http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts