Che roba è "programma_esterno.value" ?
Un eseguibile, sotto Linux, ritorna di norma un codice di errore numerico (0=nessun errore); eventualmete emette dei messaggi di stato, di warning o di errore a seconda dei casi.
Tutto quanto, codice e messaggi, possono venir catturati dai comandi EXEC (o SHELL, vedi doc).
E' comunque probabile che qualche programma, costruito in mod fuori standard, ritorni sempre 0, anche se si verifica un errore; in questo caso il problema è capire dai messaggi che emette, o dall'esito di un'operazione fisica su qualche cosa, se è andato tutto bene o meno.