Tôi đang gặp vấn đề với chuyển hướng trong tcsh.
Hãy xem xét các lệnh sau: vi --versionvà vi --xxx. Và giả sử điều này là trên một máy có vihỗ trợ --versiontùy chọn. Tùy chọn --xxxnày không hợp lệ và do đó vimsẽ hiển thị nội dung nào đó qua stderr.
Theo lý do đó, sử dụng 2> /dev/nullvới cả hai lệnh này sẽ cung cấp đầu ra cho trường hợp hợp lệ và không có đầu ra nào cho trường hợp không hợp lệ.
Và đó là những gì tôi thấy trong bash, zsh, ksh và dash.
$ vi --xxx 2> /dev/null
$ vi --version 2> /dev/null
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 20 2014 16:09:17)
...
Tuy nhiên, khi tôi thử điều này trong tcsh, nó cho tôi không có đầu ra trong cả hai trường hợp.
$ vi --xxx 2> /dev/null
$ vi --version 2> /dev/null
(there is no output here)
Chuyện gì đang xảy ra ở đây? Tôi đang chuyển hướng stderrkhông chính xác?
Đây là đầu ra của tcsh --version:
tcsh 6.18.01 (Astron) 2012-02-14 (i686-intel-linux) options wide,nls,dl,al,kan,rh,nd,color,filec