[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: BASH CSH



Dnia 16-12-2005, pią o godzinie 13:24 +0100, wmq@magma-net.pl
napisał(a):
> Ponieważ nie mogę tego zrobić w Bash'u więc powstała proteza:
> 
> skrypt s1 :
> #!/bin/bash
> 
> sleep 10
> echo "koniec s1"
> exit 0
> 
> skrypt s2 :
> #!/bin/bash
> 
> sleep 13
> echo "koniec s1"
> exit 0
> 
> skrypt s0 :
> #!/bin/tcsh
> 
> ./s1 &
> ./s2 &
> 
> while ( 1 )
>     jobs > ./logjobs
>     set i = `( cat ./logjobs | wc -l )`
>     if ( $i == 0 ) then
>         echo "koniec s0"
>         exit 0
>     endif
>     sleep 5
> end
> 
> Polecenie jobs produkuje swoje wyjście do innego strumienia i
> jobs | wc -l nie zadziała; stąd pośrednictwo pliku.
> 
> Chodzi o to by skrypt główny sprawował kontrolę nad swoimi zadaniami
> i podejmował odpowiednie działania.
> Może komuś uda się uruchomić to wszystko w Bash'u ?

nie wiem jak to wygląda na starszej wersji (jeśli masz starszą wersję),
ale u mnie na 3.0-17 chodzi wszystko:

#!/bin/bash
sleep 20 &
sleep 30 &
jobs

jak i przerobiony na bash-a drugi (aczkolwiek musiałem zmienić wyjście
jobs

#!/bin/bash
sleep 10 &
sleep 30 &
while /bin/true; do
        jobs
        i=`jobs 2>&1 | wc -l`
        echo $i;
        if [ $i -eq 0 ]; then
                echo "koniec s0"
                exit 0
        fi
        sleep 5
done

-- 
mirosław boruta
rlu: #344083



Reply to: