enviar señal entre scripts (bash)

Tengo un pequeño problema, probablemente es una pregunta estúpida, pero comencé a aprender bash hace aproximadamente una semana ... Tengo 2 script, a.sh y b.sh. Necesito hacer que ambos corran constantemente. b.sh debería esperar una señal de a.sh

(Estoy tratando de explicar: a.sh y b.sh ejecutan -> a.sh envía una señal a b.sh -> b.sh atrapa la señal, hace algo -> a.sh hace otra cosa y luego envía otra señal -> señal de trampas b.sh, hace algo -> etc.)

Esto es lo que he intentado:

ceniza:

#!/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

Cuando ejecuto a.sh no obtengo salida de b.sh, incluso si redirijo la salida estándar a un archivo ... Sin embargo, cuando ejecuto b.sh en segundo plano desde mi shell bash, parece responder a mi SIGUSR1 (enviado con el mismo comando, directamente desde el shell) (Estoy obteniendo el resultado correcto) ¿Qué me falta?

EDITAR: este es un ejemplo simple que estoy tratando de ejecutar:

ceniza:

#!/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

No puedo obtener el archivo "temp" cuando ejecuto a.sh. Sin embargo si ejecuto./b.sh & y entonceskill -SIGUSR1 PIDOFB manualmente, todo funciona bien ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta