GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengarahkan stderr dan stdout ke file berbeda di baris yang sama dalam skrip?

Seperti itu:

$ command >>output 2>>error

Tambahkan saja dalam satu baris command 2>> error 1>> output

Namun, perhatikan bahwa >> adalah untuk menambahkan jika file sudah memiliki data. Sedangkan, > akan menimpa semua data yang ada di file.

Jadi, command 2> error 1> output jika Anda tidak ingin menambahkan.

Demi penyelesaian, Anda dapat menulis 1> hanya sebagai > karena deskriptor file default adalah output. jadi 1> dan > adalah hal yang sama.

Jadi, command 2> error 1> output menjadi, command 2> error > output


Coba ini:

your_command 2>stderr.log 1>stdout.log

Informasi selengkapnya

Angka 0 melalui 9 adalah deskriptor file di bash.0 singkatan dari input standar, 1 singkatan dari output standar, 2 singkatan dari kesalahan standar. 3 melalui 9 cadangan untuk penggunaan sementara lainnya.

Deskriptor file apa pun dapat dialihkan ke file atau deskriptor file lain menggunakan operator > . Sebagai gantinya, Anda dapat menggunakan operator >> untuk menambahkan file alih-alih membuat file kosong.

Penggunaan:

file_descriptor > filename

file_descriptor > &file_descriptor

Lihat Panduan Pembuatan Skrip Bash Tingkat Lanjut:Bab 20. Pengalihan I/O.


Atau jika Anda ingin menggabungkan output (stdout &stderr) dalam satu file, Anda mungkin ingin menggunakan:

command > merged-output.txt 2>&1

Linux
  1. Cara Memisahkan Dan Menggabungkan File Dari Baris Perintah Di Linux

  2. Cara menangkap sesi terminal dan output dengan perintah skrip Linux

  3. Cara Mengarahkan Output ke File dan Stdout di Linux

  1. Bagaimana Cara Mengarahkan Stderr Dan Stdout Ke File Yang Berbeda Dan Juga Ditampilkan Di Terminal?

  2. Redirect Dan Output Pipa?

  3. Bagaimana Mengenalinya Jika Output Dari Perintah Atau Skrip Shell Adalah Stdout Atau Stderr?

  1. Apa perbedaan mengarahkan output menggunakan >, &>, >&dan 2&>?

  2. Bagaimana cara mengarahkan output dari perintah waktu ke file di Linux?

  3. bash:redirect stderr ke file dan stdout + stderr ke layar