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

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

Re: [shell-script] EOF ??


From: Tiago Peczenyj
Subject: Re: [shell-script] EOF ??
Date: Tue, 10 Jan 2012 14:40:06 -0200

EOF é uma marcação de fim de string multilinha.

por exemplo, vc poderia fazer

(echo "linha1"; echo "linha2" ; echo "linha3" )| programa

OU

programa << EOF
linha1
linha2
linha3
EOF

Agora vem uma pegadinha: na primeira forma o programa roda em um subshell
pois está do outro lado do pipe. vc poderia resolver assim:

programa < <(echo "linha1"; echo "linha2" ; echo "linha3")

mas o uso de EOF torna um pouco mais legivel

E, nesse caso, o programa roda de forma que na proxima execução vc pode
consultar o valor o valor da variavel $? -- da outra forma vc precisa ver

e o que tem nessa variavel? é o retorno do comando ao sistema operacional.
existe uma convenção de que se o programa retornar 0 é sinal de sucesso.
nesse caso o if explicito é algo como isso

comando && echo "sucesso"

ou

comando || echo "fracasso"

um exemplo comum é

mkdir diretorio && cd diretorio || echo "falha ao criar diretorio"

espero ter elucidado algumas coisas. vc precisa ver no manual do sqlplus em
que momentos que ele retornar algo diferente de zero para o sistema
operacional e qual o significado.

att

Tiago

2012/1/10 Leonardo B. Abrantes <address@hidden>

> **
>
>
> Boa tarde pessoal,tudo bem?
>
> Estou precisando modificar um script que tem o seguinte código:
>
> sqlplus /nolog << eof
> ...
> ...
> ...
> exit
> eof
> if [ $? -eq 0 ]
>
> 1) não estou entendendo a funcionalidade do eof nesse código
> 2) quando testo a saída do comando do último comando executado ($? -eq 0),
> nesse caso estou testando tudo que está entre eof e exit, ou seja, o
> resultado de um bloco de comandos ?
>
> Alguém poderia me dar uma dica por favor ?
>
> obrigado!
>
> []'s
> leo
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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