Perintah Kyle's Unix / Linux melakukan tugas mengganti STDERR dengan STDOUT; Namun penjelasannya kurang tepat. Operator pengarah ulang tidak melakukan penyalinan atau penggandaan, mereka hanya mengarahkan aliran ke arah yang berbeda.
Menulis ulang perintah Kyle dengan memindahkan sementara 3> & 1 ke akhir, akan membuatnya lebih mudah untuk memahami konsep:
find /var/log 1>&2 2>&3 3>&1
Ditulis dengan cara ini, Linux akan menampilkan kesalahan karena & 3 belum ada karena terletak sebelum 3> & 1. 3> sesuatu adalah cara untuk menyatakan (menetapkan) bahwa kita akan menggunakan pipa ketiga, jadi itu harus ditempatkan sebelum kita mengalirkan air ke pipa itu, misalnya cara Kyle menulisnya. Coba cara lain ini hanya untuk bersenang-senang:
((echo "STD1"; anyerror "bbbb"; echo "STD2" ) 3>&1 4>&2 1>&4 2>&3) > newSTDOUT 2> newSTDERR
Tidak memiliki cara untuk melakukan salinan adalah memalukan. Anda tidak dapat melakukan hal-hal seperti "3> & 1 3> & 2" dalam perintah yang sama, karena Linux hanya akan menggunakan yang pertama ditemukan dan menolak yang kedua.
Saya belum (belum) menemukan cara untuk mengirim kesalahan dan output reguler ke file dan juga mengirim salinan kesalahan ke output standar dengan satu perintah. Untuk instace, saya memiliki tugas cron yang saya inginkan baik output (kesalahan dan standar) pergi ke file log dan biarkan kesalahan juga keluar untuk membuat pesan email yang dikirim ke blackBerry saya. Saya bisa melakukannya dengan dua perintah menggunakan "tee" tetapi kesalahan tidak muncul dalam urutan yang benar di antara garis keluaran reguler dalam file. Ini adalah cara jelek saya menyelesaikan masalah:
((echo "STD1"; sdfr "bbbb"; echo "STD2" ) 3>&1 1>&2 2>&3 | tee -a log1 ) 2>> log1
Perhatikan bahwa saya harus menggunakan log1 dua kali dan saya harus menambahkan dalam kedua kasus, yang pertama menggunakan opsi "-a" untuk perintah "tee" dan yang kedua menggunakan ">>".
Melakukan cat log1 Anda mendapatkan yang berikut:
STD1
STD2
-bash: sdfr: command not found
Perhatikan bahwa kesalahan tidak muncul di baris kedua sebagaimana mestinya.