Cara Mengalihkan stderr ke stdout di Bash

How Redirect Stderr Stdout Bash



Perintah di Linux mengambil beberapa input dari pengguna, yang dapat berupa file atau atribut apa pun, dan setelah dijalankan, mereka memberikan beberapa output yang disebut output standar. Output standard boleh menjadi output kejayaan atau output kesalahan; kedua-duanya akan dipaparkan di skrin terminal anda. Tetapi dalam beberapa kes, anda ingin menyimpan output standard ke fail untuk pengujian atau penyahpepijatan kod. Di Linux, output ini dapat diarahkan ke file, dan proses menangkapnya disebut redirection.







Setiap proses Di Linux menghasilkan tiga aliran data, stdin, stdout, dan stderr:



  • stdin : Mengambil input dari pengguna melalui papan kekunci
  • stdout : Menampilkan output di skrin
  • stderr : Menunjukkan maklumat ralat di skrin

Setiap aliran data mempunyai id berangka:



Id Numerik Nama
0 stdin
1 stdout
2 stderr

Mari jelaskan pengalihan sedikit lebih terperinci:





Cara mengarahkan semula output Standard dan ralat Standard dalam Bash:

Untuk mengalihkan output standard arahan, kami akan menggunakan 1 dengan operator pengalihan yang lebih besar daripada tanda>:

$ls 1>stdout.txt

Perintah di atas akan membuat fail dan meletakkan output standard perintah ls dalam fail stdout.txt.



Untuk membaca fail stdout.txt, gunakan:

$kucingstdout.txt

Kita boleh mengarahkan kesalahan standard ke fail juga dengan menggunakan perintah:

$kucingmyfile.txt2>stderr.txt

Untuk melihat fail stderr.txt, gunakan:

$kucingstderr.txt

Pastikan penggunaan 2 akan lebih besar daripada tanda>. Oleh kerana tidak ada fail myfile.txt dalam direktori, perintah kucing akan memberikan kesalahan yang akan ditambahkan dalam fail stderr.txt.

Output standard ini dapat dialihkan dengan satu perintah juga, gunakan:

$ls 1>stdout.txt2>stderr.txt

Keluaran arahan ls akan ditulis dalam stdout.txt fail, tetapi stderr.txt akan tetap kosong kerana tidak akan ada kesalahan.

Sekarang mari kita lakukan untuk stderr.txt:

$kucingmyfile.txt1>stdout.txt2>stderr.txt

Gunakan arahan yang disebutkan di bawah untuk membaca stderr.txt.

$kucingstderr.txt

Dan tentu saja, stdout.txt akan kosong.

Kesimpulannya :

Perintah Linux semasa dijalankan memberikan output standard yang dapat menjadi output kejayaan atau output kesalahan. Secara amnya, output ini tidak dapat dialihkan menggunakan operator pengalihan; kita perlu menggunakan id berangka tertentu dengan tanda>. Dalam panduan ini, kami belajar bagaimana menggunakan kunci angka ini untuk mengalihkan output standard ke fail dengan contoh.