Se você puder usar bash
, tente isso. set -o pipefail
é a chave aqui - faz com que o bash saia de qualquer comando em uma cadeia de comandos com pipeline com um código de saída. Com pipefail
se algum comando na cadeia falhar, o status do erro será sempre zero (independentemente de um erro ter ocorrido ou não).
#!/bin/bash
set -o pipefail
xterm -sb -bg black -fg white -e .... # without -hold option
wait $! # wait for exit status of command
if [ $? -ne 0 ];then # $? holds exit status, test if error occurred
read -p "Error - press any key to exit "
fi
exit 0