Příkaz "wait" v bash
Petr Franta
petr.franta na gmail.com
Pátek Říjen 28 11:34:29 CEST 2011
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
Další informace o konferenci Linux