Você pode usar os status de saída para lidar com seu caso. Os status Exit são valores numéricos retornados por um comando para indicar se a execução correu bem ou não. O valor padrão é 0
se foi um sucesso, um número entre [1..255]
caso contrário. Cada valor tem uma significação .
Por exemplo, você pode reescrever seu Processcheck
assim:
while read proc; do
if (( 0 == $(ps -ef | grep -v grep | grep -c /location) )); then
echo "!!!!! $proc down on Master TU !!!!!"
RC=1 #I'm not sure why you use this line
EXIT_STATUS=1
else
echo "!!!!!! $proc is still running on Master TU!!!!!"
fi
#echo "Not checked"
done < /tmp/PROCESSLIST
exit $EXIT_STATUS #1 means there was an error, 0 means everything went fine
Em seu MainTest
, você pode chamar Processcheck
e verificar seu status procurando a variável $?