
Servus zusammen, warum funktioniert folgendes nicht: #!/bin/bash # Erst die Funktionen definieren function job1() { ... } function job2 () { ... } # Funktionen ausführen? test "$DO_JOB1"="1" && { job1 & PID_job1="$!" } test "$DO_JOB2"="1" && { job2 & PID_job2="$!" } # Auf Beendigung warten test "$DO_JOB1"="1" && { wait "$PID_job1" } test "$DO_JOB2"="1" && { wait "$PID_job2" } Es werden immer beide Jobs ausgeführt, auch wenn DO_JOBx auf 0 gesetzt ist. Warum? -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org

Andre Tann wrote:
warum funktioniert folgendes nicht:
weil du geizig bist!
[...]
# Funktionen ausführen? test "$DO_JOB1"="1" && { job1 & PID_job1="$!" } test "$DO_JOB2"="1" && { job2 & PID_job2="$!" }
# Auf Beendigung warten test "$DO_JOB1"="1" && { wait "$PID_job1" } test "$DO_JOB2"="1" && { wait "$PID_job2" }
Es werden immer beide Jobs ausgeführt, auch wenn DO_JOBx auf 0 gesetzt ist. Warum?
spendier dir mal ein paar Leerzeichen, also z.B. test "$DO_JOB1" = "1" && { job1 & PID_job1="$!" } ^ ^ Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org

On Wednesday, 26 October 2011 09:57:35 Andre Tann wrote:
test "$DO_JOB1"="1"
test sieht hier nur einen Parameter, nicht 3. D.h. das Ding wird interpretiert wie test "$str" was immer wahr ergibt, solange in $str irgendwas drin steht. In Deinem Fall steht immer mindestens "=1" drin. Was Du willst ist test "$DO_JOB1" = "1" Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org

Torsten Förtsch, Mittwoch, 26. Oktober 2011:
test "$DO_JOB1"="1"
test sieht hier nur einen Parameter, nicht 3. D.h. das Ding wird interpretiert wie
test "$str"
was immer wahr ergibt, solange in $str irgendwas drin steht. In Deinem Fall steht immer mindestens "=1" drin.
Mann, bin ich blöd. Das hatte ich sogar schon mal gefragt hier… Sorry für die Umstände. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org

Andre Tann schrieb:
Servus zusammen,
warum funktioniert folgendes nicht:
#!/bin/bash # Erst die Funktionen definieren function job1() { ... } function job2 () { ... }
# Funktionen ausführen? test "$DO_JOB1"="1"&& { job1& PID_job1="$!" } test "$DO_JOB2"="1"&& { job2& PID_job2="$!" }
# Auf Beendigung warten test "$DO_JOB1"="1"&& { wait "$PID_job1" } test "$DO_JOB2"="1"&& { wait "$PID_job2" }
Es werden immer beide Jobs ausgeführt, auch wenn DO_JOBx auf 0 gesetzt ist. Warum?
Hi, hatten wir das nicht grade erst? Oder ist die Mail aus dem Nirwana auferstanden? Jedenfalls sollten in den test-Ausdrücken wohl Leerzeichen sein: test "$DO_JOB1" = "1" ... cu jth -- Joerg Thuemmler www.teddylinx.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (4)
-
Andre Tann
-
Joerg Thuemmler
-
Kyek, Andreas, VF-DE
-
Torsten Förtsch