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