Ecco il compito concreto che sto cercando di realizzare. zsh si comporta il modo in cui mi piaceQual è il modo corretto per reindirizzare sia stdout che stderr in bash?
$ zsh
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
clang
$ which doesntexist > /dev/null 2&>1 && echo doesntexist || echo gcc
gcc
Ma, in bash:
$ bash
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
gcc
Ecco il caso generale:
$ which clang > /dev/null 2&>1; echo $?
1
$ which clang; echo $?
/usr/bin/clang
0
C'è qualcosa di sbagliato in come sto reindirizzando uscita. Qual è la strada giusta?