Ho alcuni script di bash critici che vengono richiamati dal codice che non controllo e dove non riesco a vedere l'output della console. Voglio una traccia completa di ciò che questi script hanno fatto per analisi successive. Per fare questo voglio rendere ogni script auto-tracciato. Ecco cosa sto facendo attualmente:Un modo migliore per eseguire il tracciamento di uno script bash?
#!/bin/bash
# if last arg is not '_worker_', relaunch with stdout and stderr
# redirected to my log file...
if [[ "$BASH_ARGV" != "_worker_" ]]; then
$0 "[email protected]" _worker_ >>/some_log_file 2>&1 # add tee if console output wanted
exit $?
fi
# rest of script follows...
Esiste un modo migliore e più pulito per farlo?
Più eccellente! Sapevo solo che doveva esserci un modo più elegante. Grazie, Kevin; questo andrà in uso immediato ... –
può anche essere emesso sul terminale corrente e accedere a un file? Ho provato a usare 'tee' con' exec' ma non ho trovato modo .. –
Vorrei collegare a [questa domanda] (http://stackoverflow.com/questions/3173131/redirect-copy-of-stdout-to -log-file-from-inside-bash-script-itself) dove è possibile vedere l'output e anche loggarlo, tutto comandato dallo script! –