Saya mengalami beberapa masalah dengan beberapa skrip di bash, tentang kesalahan dan perilaku tak terduga. Saya ingin menyelidiki penyebab masalah sehingga saya dapat menerapkan perbaikan. Apakah ada cara saya dapat mengubah semacam "mode debug" untuk bash, untuk mendapatkan informasi lebih lanjut?
Jawaban yang Diterima:
Mulai skrip bash Anda dengan bash -x ./script.sh
atau tambahkan skrip Anda set -x
untuk melihat keluaran debug.
Tambahan dengan bash
4.1 atau lebih baru:
Jika Anda ingin menulis keluaran debug ke file terpisah, tambahkan ini ke skrip Anda:
exec 5> debug_output.txt
BASH_XTRACEFD="5"
Lihat:https://stackoverflow.com/a/25593226/3776858
Jika Anda ingin melihat nomor baris tambahkan ini:
PS4='$LINENO: '
Jika Anda memiliki akses ke logger
perintah maka Anda dapat menggunakan ini untuk menulis output debug melalui syslog Anda dengan stempel waktu, nama skrip, dan nomor baris:
#!/bin/bash
exec 5> >(logger -t $0)
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x
# Place your code here
Anda dapat menggunakan opsi -p
dari logger
perintah untuk mengatur fasilitas dan level individu untuk menulis output melalui syslog lokal ke file lognya sendiri.