Вам нужно либо запустить команду на переднем плане
$ (exit 10)
$ echo $?
10
, либо, если она выполняется в фоновом режиме, явно подождите
для этого:
$ (sleep 3; exit 10) &
$ wait %% # %% refers to the current (last) job
$ echo $?
10
Или указав идентификатор процесса вместо номера задания для ожидания
:
$ (sleep 3; exit 10) & pid=$!
$ wait $pid # $! holds the PID of the last background process
$ echo PID $pid exited with code $?