in bash, se eseguo un paio di comandi collegati insieme all'interno di apici inversi, come posso scoprire lo stato di uscita del primo comando?bash pipestatus nel comando backticked?
In questo caso, sto cercando di ottenere il "1". che posso ottenere tramite [0] PIPESTATUS se non sto usando apici inversi, ma che non sembra funzionare quando voglio salvare l'output:
## PIPESTATUS[0] works to give me the exit status of 'false':
$ false | true;
$ echo $? ${PIPESTATUS[0]} ${PIPESTATUS[1]};
0 1 0
## doesn't work:
$ a=`false | true`;
$ echo $? ${PIPESTATUS[0]} ${PIPESTATUS[1]};
0 0
Più in generale, sto cercando di realizzare: salvare il ultima riga della produzione di qualche programma a una variabile, ma in grado di dire se il programma non è riuscita:
$ myvar=` ./someprogram | tail -1 `;
$ if [ "what do i put here" ]; then echo "program failed!"; fi
Idealmente mi piacerebbe anche capire che cosa sta succedendo, non solo quale sia la risposta.
Grazie.
Grazie, funziona. Non sapevo del "pipefail". – jerry
Funziona anche in sh. Grazie. – AnkurTank