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

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

Re: [shell-script] echo sem processar variável


From: gusmao
Subject: Re: [shell-script] echo sem processar variável
Date: Sun, 24 Aug 2003 15:25:19 -0300
User-agent: Internet Messaging Program (IMP) 3.1

Citando Mateus Caruccio <address@hidden>:

Valeu, da maneira que vc enviou, funcionou belezinha com o cat e EOF. Obrigado 
tb ao Lucas Santos por ter respondido...

Abraços.

> 
> 
> 
> 
> opa,
> 
> 
> 
>  isso eh barbadinah deresolver. eh so escapar os caracteres interpretados
> pelo shell. veja :
> 
> 
> 
> # esse eh o teu problema:
> 
> $ echo "$(hostname)"
> 
> rush.net
> 
> 
> 
> # que pode ser resolvido escapando o $
> 
> $ echo "\$(hostname)"
> 
> $(hostname)
> 
> 
> 
> Vi ? eh so nao deixar o shell "fazer o trabalho dele", ou seja, substituir o
> comando hostname antes de executar o echo.
> 
> 
> 
> No caso do seu script, tu utiliza um valor de uma variavel que eh
> "processada" dentro do echo... isso eh complicado de evitar. oque poderia sr
> feito é achar esse valores _antes_ do echo e substituir eles no echo
> 
> 
> 
> o script ficaria +ou- assim:
> 
> 
> 
> #!/bin/sh
> 
> aqui começa o script perguntando os dados...
> 
> no final:
> 
> ...
> 
> echo "#!/bin/sh
> 
> ### A variável abaixo não pode ser processada pelo echo, que to usando para 
> escrever no arquivo backup.
> 
> DATA=\"\$(date +%d_%m_%Y\)\"
> 
> 
> 
> ### Esta aqui tb tem que ser redirecionada sem ser processado pelo echo
> 
> SERVIDOR=\"\$(hostname)\"
> 
> ARQUIVO=\"\$SERVIDOR-$DATA.tar\"
> 
> 
> 
> DIRETORIOS=\"/etc/rc.conf /usr/local/squid/etc/squid.conf\"
> 
> 
> 
> # Dados do servidor FTP
> 
> HOST_FTP=\"200.200.200.200\"
> 
> USUARIO_FTP=\"usuario\"
> 
> SENHA_FTP=\"123456\" " > backup
> 
> 
> 
> 
> 
> Mais uma dica: ao inves de usar o echo, utilize uma feature do bash chamada
> Here Document.
> 
> A syntax eh a seguinte (nao necessariamente com o cat):
> 
> 
> 
> $ cat > arquivo_de_saida <<sinalizador_de_fim_de_arquivo
> 
> 
> 
> exemplo:
> 
> 
> 
> $ cat > backup <<EOF
> 
> DATA=\"\$(date +%d_%m_%Y\)\"
> 
> SERVIDOR=\"\$(hostname)\"
> 
> ARQUIVO=\"\$SERVIDOR-$DATA.tar\"
> 
> ... e todos  conteudo do backup... como no outro script.
> 
> EOF
> 
> 
> 
> Uma linha com o sinalizador de fim de arquivo (nesse caso a string EOF) fecha
> o arquivo e grava tudo no arquivo backup.
> 
> 
> 
> []s
> 
> 
> 
>    Mateus Caruccio
> 
> 
> 
> 
> 
> ----- Original Message -----
> 
> From: address@hidden
> 
> Date: Sun, 24 Aug 2003 12:55:59 -0300
> 
> To: address@hidden
> 
> Subject: [shell-script] echo sem processar variável
> 
> 
> 
> > Dentro de um script, preciso redirecionar algumas linhas para outro script,
> com 
> 
> > o echo. Até aí, beleza. Só que preciso escrever neste tal arquivo, uma 
> 
> > variável, porém o echo executa esta e escreve no arquivo redirecionado o 
> 
> > valor... por exemplo:
> 
> > 
> 
> > Um script para pegar o endereço IP, login e senha de usuário ftp. Após 
> 
> > preencher os dados, redirecionar o conteúdo abaixo para o arquivo com nome
> de 
> 
> > backup:
> 
> > 
> 
> > 
> 
> > #!/bin/sh
> 
> > aqui começa o script perguntando os dados...
> 
> > no final:
> 
> > 
> 
> > echo "#!/bin/sh
> 
> > ### A variável abaixo não pode ser processada pelo echo, que to usando para
> 
> 
> > escrever no arquivo backup.
> 
> > DATA=`date +%d_%m_%Y`
> 
> > 
> 
> > ### Esta aqui tb tem que ser redirecionada sem ser processado pelo echo
> 
> > SERVIDOR="$(hostname)"
> 
> > ARQUIVO="$SERVIDOR-$DATA.tar"
> 
> > 
> 
> > DIRETORIOS="
> 
> > /etc/rc.conf
> 
> > /usr/local/squid/etc/squid.conf"
> 
> > 
> 
> > # Dados do servidor FTP
> 
> > HOST_FTP="200.200.200.200"
> 
> > USUARIO_FTP="usuario"
> 
> > SENHA_FTP="123456"
> 
> > 
> 
> > " > backup
> 
> > 
> 
> > Não sei se deu pra entender, mas o echo ta escrevendo no arquivo backup:
> 
> > 
> 
> > #!/bin/sh
> 
> > DATA=24/08/2003
> 
> > 
> 
> > SERVIDOR=host.dominio.com.br
> 
> > 
> 
> > e teria que escrever as variaveis com o conteudo original...
> 
> > 
> 
> > Alguem soube com fazer isto???
> 
> > Gusmão
> 
> > 
> 
> > -------------------------------------------------
> 
> > This mail sent through IMP: http://horde.org/imp/
> 
> > 
> 
> > 
> 
> > 
> 
> > ---------------------------------------------------------------------
> 
> > Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> 
> > ---------------------------------------------------------------------
> 
> > Sair da lista: address@hidden
> 
> > ---------------------------------------------------------------------
> 
> > Esta lista é moderada de acordo com o previsto em
> http://www.listasdiscussao.cjb.net
> 
> > ---------------------------------------------------------------------
> 
> >  
> 
> > 
> 
> > Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html 
> 
> > 
> 
> > 
> 
> 
> 
> 
> 
> 
> 
> # ########################################################
> 
> # Mateus de Oliveira Caruccio <caruccio at operamail.com>
> 
> # Linux User #183552 - UIN #37364320
> 
> # Vim, vi e matei o Emacs !
> 
> 
> 
> 
> 
> 
> 
> -- 
> 
> ____________________________________________
> 
> http://www.operamail.com
> 
> Get OperaMail Premium today - USD 29.99/year
> 
> 
> 
> 
> 
> Powered by Outblaze
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Yahoo! Groups Sponsor
> 
> 
> 
>  O que você vai fazer
> 
hoje?    seçõesAcademiasBaresCafésBoateCinemaExposiçõesFestasMotéisParquesPousad
asRestaurantesShowsTeatroVídeos 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> 
> ---------------------------------------------------------------------
> 
> Sair da lista: address@hidden
> 
> ---------------------------------------------------------------------
> 
> Esta lista é moderada de acordo com o previsto em
> http://www.listasdiscussao.cjb.net
> 
> ---------------------------------------------------------------------
> 
> 
> 
> 
> 
> 
> 
> Seu uso do Yahoo! Grupos é sujeito aos Termos do Serviço Yahoo!.
> 
> 
> 
> 
> 




-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/



reply via email to

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