これが私が達成しようとしている具体的なタスクです。zsh は私が好きなように動作します
$ zsh
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
clang
$ which doesntexist > /dev/null 2&>1 && echo doesntexist || echo gcc
gcc
しかし、bash では:
$ bash
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
gcc
一般的なケースは次のとおりです。
$ which clang > /dev/null 2&>1; echo $?
1
$ which clang; echo $?
/usr/bin/clang
0
出力のリダイレクト方法に問題があります。正しい方法は何ですか?