Đây là nhiệm vụ cụ thể mà tôi đang cố gắng hoàn thành. zsh cư xử theo cách tôi thíchCách chính xác để chuyển hướng cả stdout và stderr trong bash là gì?
$ zsh
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
clang
$ which doesntexist > /dev/null 2&>1 && echo doesntexist || echo gcc
gcc
Nhưng, trong bash:
$ bash
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
gcc
Đây là trường hợp chung:
$ which clang > /dev/null 2&>1; echo $?
1
$ which clang; echo $?
/usr/bin/clang
0
Có điều gì đó sai với cách tôi đang chuyển hướng đầu ra. Cách đúng là gì?