shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Script para Gerar Script


From: voyeg3r
Subject: Re: Script para Gerar Script
Date: Sat, 13 Oct 2007 16:24:30 -0000
User-agent: eGroups-EW/0.82

Alguém concordaria que usando "Here documents" 
é mais prático ainda do que echo? 
Se errado estiver me corrijam :)

Aceitamos exemplos!




--- Em address@hidden, MrBiTS <mrbits@...> escreveu
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> > Prezados da Lista,
> > 
> > Não sei até onde isso é útil, mas acompanho vários scripts na
> > lista para criação de outros scripts ou arquivos, onde enconto vários
> > ECHO's e direcionamentos >>, resolvi passar um pouco da minha
> > experiência com esses scripts.
> > 
> > Após alguns anos criando scripts com diversas finalidades, espero
> > que minha experiência seja útil para algum fim.
> > 
> > Quando preciso gerar scripts ou arquivos originados de outro
> > script utilizo funções e uma única saída e um único ECHO. Segue
exemplo:
> > 
> > -----> script.sh <-----
> > #!/bin/bash
> > 
> > function geraScript() {
> > echo "#!/bin/bash
> > # script gerado pelo script.sh
> > # mostra a memória disponível
> > grep ^MemTotal /proc/meminfo
> > # mostra a distribuição atual
> > head -n1 /etc/issue
> > "
> > }
> > geraScript > info.sh
> > chmod +x info.sh
> > -----> end script.sh <-----
> > 
> > Como observam, para gerar um script qualquer, utilizo um único
> > ECHO e um único direcionamento (>), ajudando em muito a manutenção do
> > mesmo. Espero ter ajudado.
> > 
> > Abraços a todos e sucesso,
> 
> É esse o tipo de mensagem que mostra claramente que essa é , se não a
> primeira, uma entre as 5 listas mundiais de altíssimo nível.
> 
> Complementando o script do Braga, acredito ser necessário exemplificar
> como utilizar variáveis dentro dessa estrutura. Nosso problema aí é
> colocar uma variável sem que ela seja interpretada pelo script gerador.
> Se escrevermos a função geraScript assim:
> 
> function geraScript {
> echo "#!/bin/bash
> grep ^MemTotal /proc/meminfo
> head -n1 /etc/issue
> VAR1=$(free)
> echo $VAR1
> "
> }
> 
> teremos a execução do comando free no momento da chamada da função, e
> não é esse nosso objetivo. Então, utilizamos escapes para gerar nossa
> função, agora com suporte a variáveis:
> 
> function geraScript {
> echo "#!/bin/bash
> grep ^MemTotal /proc/meminfo
> head -n1 /etc/issue
> VAR1=\$(free)
> echo \$VAR1
> "
> }
> 
> Bastante simples.
> 
> Outra solução interessante é a utilização de nested scripts, tema
> abordado inclusive em mensagens recentes da lista. Utilizando esse
> recurso, nossa função ficaria assim:
> 
> function geraScript {
> cat << __EOF__ >> info.sh
> #!/bin/bash
> # Gerado por nested scripts
> grep ^MemTotal /proc/meminfo
> head -n1 /etc/issue
> VAR1=\$(free)
> echo \$VAR1
> __EOF__
> }
> 
> 
> Um abraço
> 
> MrBiTs - mrbits@...
> 
> 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFHELKPrDdxWm3R8YYRAjLvAKCe9m0n/qlKce/fl/8gNBeyfyhjzwCgo0Xs
> YyiQvhVd9g6MbTmBMvvbfuc=
> =q1Se
> -----END PGP SIGNATURE-----
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]