В моем скрипте bkp_hot-rout.ksh я хочу проверить код возврата команды mv, используя функцию, которая отображает OK или WARN (функция check_return_warn).
Проблема в том, что код возврата всегда равен 0, даже еслиЯ удаляю исходный файл до mv.
Сценарий bkp_hot-rout.ksh
#Load functions
export FPATH=/app/rl/exploit/functions
${FPATH}/init
rm ${HRFILE}
mv ${HRFILE} ${HRFILE}"_"${DATE_TAG}
check_return_warn "${MSG_ETAPE} : Horodatage du fichier des HR (commande mv)"
Файл инициализации
#!/bin/ksh
init()
{
for file in `ls -1 $FPATH`
do
. ${FPATH}/$file
done
}
check_return_warn file
#!/bin/ksh
check_return_warn ()
{
RCwritelog=$?
ETAP_NOM=$1
MSG_ERR=$(echo "$2" | tr '\n' ' ')
if [ ${RCwritelog} -ne 0 ]; then
log_write_warn "${ETAP_NOM} : Echec. ${MSG_ERR}" "${RCwritelog}"
else
log_write_ok "${ETAP_NOM} : Termin▒ avec succ▒s."
fi
return ${RCwritelog}
}
В отладке мы видим, что тест всегда: if [0 -ne 0];затем
Все функции находятся в одном каталоге: / app / rl / exploit / functions
Другие функции не имеют этой проблемы.check_return_warn был создан путем копирования check_return_error с тем же кодом, кроме вызова log_write_error вместо log_write_warn Если я использую check_return_error для проверки KO mv, код возврата <> 0
Можете ли вы взглянуть?Спасибо
Дэвид