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

Publicado por Raimundo Alves Portela em 05/07/2011

[ Hits: 24.360 ]

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

Deixar as janelas transparentes usando Compiz

Acessar arquivos no Android pelo PC em rede wifi

Configurar efeito modal ao fundo de um elemento com jQuery

Criando template para o Geany

Adquira a Linux Magazine Community

Leitura recomendada

Como configurar seu teclado em esperanto no Ubuntu 8.04

Como remover o ambiente gráfico instalado no Ubuntu

Aumentando a segurança de pastas e arquivos com ACL

Solucione seu problema com a instalação de drivers ATI Radeon no Slackware 10.2

85 jogos para GNU/Linux que vale a pena conhecer

  

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