[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Pipe e Pipestatus
From: |
Rodrigo Vilaça |
Subject: |
RES: [shell-script] Pipe e Pipestatus |
Date: |
Thu, 2 Sep 2004 22:15:05 -0300 |
O pipe "passa" a saída de um comando para outro:
echo "O rato roeu a roupa do rei de Roma" | sed 's/r/P/g'
O pato poeu a poupa do pei de Roma
Quer dizer, em vez de ser um arquivo especificado a entrada do comando sed
será a saida do comando echo.
Nos seus comandos não há uma relação de um comando com outro. A saída de um
não será a entrada do outro, entendeu?
Podes fazer assim:
umount /mnt/net
COMANDO1=$?
smbmount //pc/share /mnt/net -o username=a,password=a
COMANDO2=$?
cp /mnt/net/* /dest
COMANDO3=$?
[]'s
Rodrigo Vilaça
>
>Estou criando um pequeno script para mapear e copiar os dados de uma
>máquina windows para uma máquina linux, mas para me assegurar que
>todos os passos foram executados com sucesso e/ou saber extamente o
>que deu de errado, pretendo usar o pipestatus em cada passo, ficando
>assim:
>
>umount /mnt/net |
>smbmount //pc/share /mnt/net -o username=a,password=a |
>cp /mnt/net/* /dest
>
>echo {$PIPESTATUS[*]}
>
>Porém o script não aguarda a montagem do //pc/share o que faz com
>que o passo seguinte, a cópia dos dados, retorne erro. O resultado
>do é:
>
>0 0 1
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.725 / Virus Database: 480 - Release Date: 19/07/2004