Cara menyimpan ralat standard ke pemboleh ubah dalam bash

Cara menyimpan ralat standard ke pemboleh ubah dalam bash

Dalam bash, anda boleh menyimpan output ralat standard perintah kepada pembolehubah dengan menggunakan '2> & 1' pengendali dan '$ ()' Sintaks penggantian arahan. Di sini '2>' mengalihkan mesej ralat ke & 1 ', yang mewakili output standard. Dalam kes shell bash berfungsi sebagai peranti output standard.

  • Contohnya, untuk menyimpan output ralat standard dari 'ls' Perintah kepada pembolehubah yang dinamakan ralat, anda boleh menggunakan arahan berikut:
    ralat = $ (LS tidak wujud fail 2> & 1)  
    Simpan ralat standard dalam pemboleh ubah bash

    Sebagai alternatif, anda boleh menggunakan '$?' parameter khas untuk menyimpan status keluar perintah kepada pemboleh ubah. Status keluar adalah nilai angka yang menunjukkan sama ada arahan itu berjaya atau tidak. Nilai '0' Menunjukkan kejayaan, sementara nilai bukan sifar menunjukkan kesilapan.

  • Contohnya, untuk menyimpan status keluar dari 'ls' Perintah ke status bernama pembolehubah, anda boleh menggunakan arahan berikut:
    LS tidak wujud fail  status = $?  
  • Anda kemudian boleh menggunakan 'status $' pemboleh ubah untuk memeriksa status keluar dari 'ls' perintah dan ambil tindakan yang sesuai berdasarkan hasilnya. Sebagai contoh: #!/usr/bin/env bash # pur arahan anda di sini jika [$ status -ne 0]; kemudian echo "arahan terakhir gagal dengan ralat."Fi
    123456#!/usr/bin/env bash # pur arahan anda di sini [$ status -ne 0]; kemudian echo "arahan terakhir gagal dengan ralat."Fi

Perlu diingat bahawa '$ ()' sintaks penggantian arahan membolehkan anda melaksanakan arahan dan menggantikan outputnya di tempatnya. The '2>' pengendali mengalihkan output ralat standard perintah ke '& 1' aliran, yang merupakan aliran output standard. Ini membolehkan anda menangkap kedua -dua output standard dan output ralat standard perintah dalam pembolehubah tunggal.