Объявляем функцию, которой скармливаем результат последней команды ($1) и текст ($2):
function check_error() {
if [[ "${1}" -eq 0 ]]
then echo -e "$2:\t\e[1;32m[OK]\e[0m"
else echo -e "$2:\t\e[1;31m[ERROR]\e[0m"
fi
}
И после нужно команды вызываем ее:
Перехват ошибок в сислог.
Как логировать одновременно и в консоль и в сислог
Сначала объявляем функцию:
затем в месте, где нужно логировать вызываем ее, передавая в качестве параметра текст:
rm -f file
check_error $? "Removing file"=============================================
Перехват ошибок в сислог.
set -e # fail on any error===========================================
set -u # treat unset variables as errors
# ======[ Trap Errors ]======#
set -E # let shell functions inherit ERR trap
# Trap non-normal exit signals:
# 1/HUP, 2/INT, 3/QUIT, 15/TERM, ERR
trap err_handler 1 2 3 15 ERR
function err_handler {
local exit_status=${1:-$?}
logger -s -p "syslog.err" -t "ootync.deb" "supersh.deb script '$0' error code $exit_status (line $BASH_LINENO: '$BASH_COMMAND')"
exit $exit_status
}
your_command some args
Как логировать одновременно и в консоль и в сислог
Сначала объявляем функцию:
log() { logger -t scriptname "$@"; echo "$@"; }
затем в месте, где нужно логировать вызываем ее, передавая в качестве параметра текст:
log "text to be logged";