Memahami 2> & 1 dalam Panduan Pemula Bash

Memahami 2> & 1 dalam Panduan Pemula Bash

Bash adalah shell popular yang digunakan dalam kebanyakan pengagihan Linux. Ia menyediakan pelbagai teknik pengalihan I/O yang membolehkan pengguna mengawal bagaimana input dan output diproses dalam arahan dan skrip mereka. Salah satu teknik pengalihan I/O yang paling biasa digunakan adalah 2> & 1, yang mengalihkan ralat standard (STDERR) ke output standard (STDOUT).

Dalam artikel ini, kami akan memberikan panduan pemula untuk memahami 2> & 1 dalam bash.

Apa itu 2> & 1?

2> & 1 adalah pengendali pengalihan I/O yang digunakan dalam bash yang mengalihkan aliran stderr ke destinasi yang sama dengan aliran stdout. Dengan kata lain, ia menggabungkan output ralat dengan output biasa, menjadikannya lebih mudah untuk menangkap dan mengendalikan kesilapan.

Sintaks untuk menggunakan 2> & 1 adalah seperti berikut:

Perintah 2> & 1
1Perintah 2> & 1

Dalam sintaks ini, 'Perintah' adalah arahan yang sedang dilaksanakan, dan '2> & 1' adalah pengendali pengalihan I/O yang mengalihkan stderr ke stdout.

Mengapa Gunakan 2> & 1?

Menggunakan 2> & 1 berguna untuk menangkap dan mengendalikan kesilapan dalam skrip bash. Dengan mengalihkan stderr ke stdout, anda boleh menangkap output dan output ralat biasa dalam satu aliran, yang memudahkan untuk menganalisis dan mengendalikan kesilapan. Ini boleh menjadi sangat berguna dalam skrip yang memerlukan pengendalian ralat, di mana anda perlu tahu jika perintah dilaksanakan dengan jayanya atau mengalami ralat.

Contoh penggunaan

Inilah contoh cara menggunakan 2> & 1 Dalam skrip bash:

#!/bin /bash ls /not_a_directory> /dev /null 2> & 1 jika [$? -ne 0]; kemudian echo "ralat: direktori tidak dijumpai" fi
123456#!/bin /bash ls /not_a_directory> /dev /null 2> & 1if [$? -ne 0]; kemudian echo "ralat: direktori tidak dijumpai" fi

Dalam contoh ini, 'ls' Perintah dilaksanakan di direktori yang tidak wujud '/not_a_directory'. Output arahan ini diarahkan ke '/dev/null', yang membuangnya. The stderr output diarahkan ke stdout menggunakan 2> & 1, yang membolehkannya ditangkap dalam pernyataan jika. Sekiranya status keluar ($?) arahan tidak sama dengan 0, mesej ralat dicetak.

Kesimpulan

Kesimpulannya, 2> & 1 adalah pengendali pengalihan I/O yang digunakan dalam bash yang mengalihkan stderr ke stdout. Ia berguna untuk menangkap dan mengendalikan kesilapan dalam skrip bash, di mana anda perlu tahu jika perintah dilaksanakan dengan jayanya atau mengalami ralat. Dengan menggabungkan output ralat dengan output biasa, ia menjadikannya lebih mudah untuk menganalisis dan mengendalikan kesilapan. Memahami asas -asas 2> & 1 penting bagi sesiapa yang bekerja dengan skrip dan arahan bash.