[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Funções com comando tee
From: |
miguelcm86 |
Subject: |
Re: Funções com comando tee |
Date: |
Tue, 30 Oct 2007 01:08:31 -0000 |
User-agent: |
eGroups-EW/0.82 |
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:
miguel@linux-rula:~$ ./teste1.sh
testes que só fazem perder tempo
bem
0[1] 0[2]
0[1] 0[2]
miguel@linux-rula:~$
isto assim diz que está a receber demasiados arguementos:
if [ `Install | tee teste1.rep` ]
output:
./teste1.sh: line 10: [: demasiados argumentos
--- Em address@hidden, "Tiago Barcellos Peczenyj"
<tiago.peczenyj@...> escreveu
>
> On 10/29/07, miguelcm86 <miguelcm86@...> 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
>
> visitante@fred ~
> $ echo ${PIPESTATUS[@]}
> 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/
>
- Funções com comando tee, miguelcm86, 2007/10/29
- Re: [shell-script] Funções com comando tee, Tiago Barcellos Peczenyj, 2007/10/29
- Re: Funções com comando tee,
miguelcm86 <=
- Re: [shell-script] Re: Funções com comando tee, Julio C. Neves, 2007/10/30
- Re: [shell-script] Re: Funções com comando tee, Carlos Ferreira, 2007/10/30
- Re: [shell-script] Re: Funções com comando tee, Tiago Barcellos Peczenyj, 2007/10/30
- Re: [shell-script] Re: Funções com comando tee, Julio C. Neves, 2007/10/30
- Re: [shell-script] Re: Funções com comando tee, Carlos Ferreira, 2007/10/30
- Re: Funções com comando tee, miguelcm86, 2007/10/31
- Re: [shell-script] Re: Funções com comando tee, Tiago Barcellos Peczenyj, 2007/10/31
- Re: [shell-script] Re: Funções com comando tee, Julio C. Neves, 2007/10/31