在我的脚本bkp_hot-routes.ksh中,我想使用显示OK或WARN的函数(函数check_return_warn)来测试mv命令的返回码。
问题是即使我在mv之前删除源文件,返回码也始终为0。
脚本bkp_hot-routes.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文件
#!/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测试mv的KO,则返回码为<> 0
可以请你看看吗?谢谢
大卫