[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-----
>