[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] echo sem processar variável
From: |
Mateus Caruccio |
Subject: |
Re: [shell-script] echo sem processar variável |
Date: |
Mon, 25 Aug 2003 00:20:27 +0800 |
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
- Re: [shell-script] echo sem processar variável,
Mateus Caruccio <=