Příkaz "wait" v bash

Ondra Janál linux-list na delay.melzer.cz
Pátek Říjen 28 12:16:48 CEST 2011


Ahoj

Mě chodí toto:

Switche () {
    Prom=$(TabSwitch $1 $2)
    echo $Prom > $mysnmptmp.out.$1
#    echo $Prom
}

while read nazev ip; do.
    Switche $ip $nazev &
done < $mysnmptmp.list
wait



Petr Franta napsal(a):
> Ahoj všichni.
> Chtěl jsem se zeptat na to jak udělat, aby v BASH scriptu zabral příkaz
> "wait".
> Pokud napíši:
> #!/bin/bash
> sleep 10 &
> wait
> Pak vše funguje správně.
> Ale rád bych spouštěl paralelně zálohování FTP a můj bash ignoruje příkaz
> "wait":
> petr na petr-desktop:~/pracovni/bash$ cat wait2.sh
> #!/bin/bash
> 
> cat ucty.txt | while read DOMENA USER PASS
> do
>   echo "Start sleep ${DOMENA}"
>   { sleep 5; echo "Konec sleep ${DOMENA}!" ; } &
> done
> 
> ps | grep sleep
> wait
> echo "BASH KONEC"
> ps | grep sleep
> 
> Script vypíše:
> petr na petr-desktop:~/pracovni/bash$ ./wait2.sh
> Start sleep domena1.cz
> Start sleep domena2.cz
> Start sleep domana3.cz
>  5575 pts/1    00:00:00 sleep
>  5577 pts/1    00:00:00 sleep
>  5579 pts/1    00:00:00 sleep
> BASH KONEC
>  5575 pts/1    00:00:00 sleep
>  5577 pts/1    00:00:00 sleep
>  5579 pts/1    00:00:00 sleep
> petr na petr-desktop:~/pracovni/bash$
> Konec sleep domana1.cz!
> Konec sleep domana3.cz!
> Konec sleep domana2.cz!
> 
> Pravděpodobně problém způsobí řádek cat ucty.txt | while read DOMENA USER
> PASS, protože pokud jsem si udělal jen primitivní bash s příkazy while xxx ;
> do ... sleep xx & ... done, tak to pracuje správně.
> Předem díky za radu.
> Petr
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux
> 



Další informace o konferenci Linux