Saya ditugaskan untuk membuat skrip pengerasan server otomatis dan satu hal yang mereka butuhkan adalah laporan dari semua output dari setiap perintah yang dieksekusi. Saya ingin menyimpan pesan kesalahan di dalam string dan menambahkannya dalam file teks.
Katakanlah saya menjalankan perintah ini:
/sbin/modprobe -n -v hfsplus
Output dari menjalankan ini di mesin saya adalah:
FATAL: Module hfsplus not found
Bagaimana saya bisa menyimpan pesan kesalahan itu di dalam sebuah string? Bantuan apa pun akan sangat dihargai. Terima kasih!
Jawaban:
Anda dapat melakukannya dengan mengarahkan ulang perintah kesalahan:
sebagai naskah
atau
jika Anda ingin menambahkan penggunaan kesalahan,
>>
bukan>
Pastikan untuk menggunakan
2>&1
dan tidak2> &1
menghindari kesalahan "kesalahan sintaksis dekat token yang tak terduga` & '"sumber
Cukup untuk menyimpan sebagai string dalam skrip bash:
Ini bisa sedikit lebih baik karena Anda akan melihat pesan ketika perintah dijalankan:
sumber
Saya menangkap kesalahan seperti ini
jika sumber gagal, saya akan menangkap kesalahan dan mencatatnya.log_warn hanyalah fungsi sederhana.
BTW, saya menggunakan ini di dotfiles saya
sumber
Untuk menambahkan penggunaan file
/sbin/modprobe -n -v hfsplus 2>> filename
sumber
Versi bash yang lebih baru (Yaitu bash 4.1+):
sumber
Untuk mengembalikan pesan kesalahan dalam suatu variabel, cukup;
sumber