send signal between scripts (bash)

Ich habe ein kleines Problem, wahrscheinlich ist es eine dumme Frage, aber ich habe vor ungefähr einer Woche angefangen, Bash zu lernen ... Ich habe 2 Skripte, a.sh und b.sh. Ich muss beide ständig zum Laufen bringen. b.sh sollte auf ein Signal von a.sh @ wart

(Ich versuche zu erklären: a.sh und b.sh laufen -> a.sh sendet ein Signal an b.sh -> b.sh fängt ein Signal ein, macht etwas -> a.sh macht etwas anderes und sendet dann noch ein signal -> b.sh fängt signal ein, macht was -> etc.)

Das ist, was ich versucht habe:

Asche

#!/bin/bash
./b.sh &;
bpid=$!;
# do something.....
while true
do
     #do something....
     if [ condition ]
     then
          kill -SIGUSR1 $bpid;
     fi
done

b.sh:

#!/bin/bash 
while true
do
     trap "echo I'm here;" SIGUSR1;
done

Wenn ich a.sh ausführe, erhalte ich keine Ausgabe von b.sh, auch wenn ich die Standardausgabe in eine Datei umleitung ... Wenn ich jedoch b.sh im Hintergrund von meiner Bash-Shell aus ausführe, scheint dies auf meine zu antworten SIGUSR1 (wird mit demselben Befehl direkt von der Shell gesendet) (ich erhalte die richtige Ausgabe) Was fehlt mir?

EDIT: Dies ist ein einfaches Beispiel, das ich ausführen möchte:

Asche

#!/bin/bash
./b.sh &
lastpid=$!;
if [ "$1" == "something" ]
then    
    kill -SIGUSR1 $lastpid;,
fi

b.sh:

#!/bin/bash
trap "echo testlog 1>temp" SIGUSR1;
while true
do
    wait
done

Ich kann die Datei "temp" nicht abrufen, wenn a.sh ausgeführt wird. Wenn ich jedoch./b.sh & und dannkill -SIGUSR1 PIDOFB manuell, alles funktioniert gut ...

Antworten auf die Frage(1)

Ihre Antwort auf die Frage