Pensei que houvesse uma solução mais fácil.. estou a testar, mas além
de não perceber muito bem como é que isso funciona, eu chamo todas
pipesatus [0] e [1] e [2] e estão todos a 0.
aqui está o codigo:

#! /bin/bash
Install(){
echo "testes que só fazem perder tempo"
return 34
}



if ( Install | tee teste1.rep )         ##executa as funções e guarda os output
            then echo "bem"
                 echo $PIPESTATUS[0] $PIPESTATUS[1]
            else echo "mal"
fi      
 echo $PIPESTATUS[1] $PIPESTATUS[2]

exit 0

por mais que altere o 34 para o 0 e outro valor o output é sempre este:
[EMAIL PROTECTED]:~$ ./teste1.sh
testes que só fazem perder tempo
bem
0[1] 0[2]
0[1] 0[2]
[EMAIL PROTECTED]:~$ 



isto assim diz que está a receber demasiados arguementos:
if [ `Install | tee teste1.rep` ] 

output:
./teste1.sh: line 10: [: demasiados argumentos





--- Em shell-script@yahoogrupos.com.br, "Tiago Barcellos Peczenyj"
<[EMAIL PROTECTED]> escreveu
>
> On 10/29/07, miguelcm86 <[EMAIL PROTECTED]> wrote:
> >
> > olá pessoal
> >
> >  o que se passa é simples
> >
> >  -Tenho que chamar uma função install, guardar todo o seu output
dentro
> >  de um arquivo e saber qual o return que recebo da função install.
> >  Estou a fazer desta maneira que está errada, queria saber como
resolvo.
> >
> >  Install(){
> >  ......
> >  return variavel
> >  }
> >
> >  if [ Install | tee install.rep ]
> >  then echo "return = 0"
> >  else echo "return = 1"
> >  fi
> >
> >  uso o comando tee porque quero no install.rep todo o output no
ficheiro.
> >
> 
> Miguel,
> 
> a palavra "return" em uma função é semelhante ao exit de um script,
> porém interrompe apenas a função, e o seu resultado pode ser lido pela
> variavel $? e pode ser usado nas operações && e ||
> 
> function xxx() {
>    return 12
> }
> 
> $ xxx
> 
> $ echo $?
> 12
> 
> Agora, quando vc esta trabalhando com pipes, esse resultado é
> armazenado em um vetor chamado PIPESTATUS, que guarda o retorno de
> cada processo
> 
> $ xxx | tee supimpa
> 
> [EMAIL PROTECTED] ~
> $ echo [EMAIL PROTECTED]
> 12 0
> 
> certo, mano ?
> 
> Existem outras alternativas como usar sinais, mas por enquanto deve
bastar ;-)
> 
> -- 
> Tiago B Peczenyj
> Linux User #405772
> 
> http://peczenyj.blogspot.com/
>


Responder a