Oto konkretne zadanie, które próbuję osiągnąć. zsh zachowuje się tak jak lubięJaki jest poprawny sposób przekierowania zarówno stdout, jak i stderr w bashu?
$ zsh
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
clang
$ which doesntexist > /dev/null 2&>1 && echo doesntexist || echo gcc
gcc
Ale w bash:
$ bash
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
gcc
Oto przypadek ogólny:
$ which clang > /dev/null 2&>1; echo $?
1
$ which clang; echo $?
/usr/bin/clang
0
Coś jest nie tak ze jak mam wyjście przekierowanie. Jaka jest właściwa droga?