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