#!/bin/sh
logFile=/opt/scripts/chkconns_log/chklog.log;
dailyLogFile=${logFile}_dailyLog;
logExists()
{
if [ -f ${logFile} ]; then
echo Log file is exists !
return 0;
else
echo Log file is not exists ! ${logFile}
return 1;
fi
}
getDailyFileName()
{
if [[ ${logExists} -ne 0 ]]; then ------------------ 出问题的语句
return;
fi
上面 出问题的语句 行中调用logExists方法,并判断其结果,在 centos 中可以正常执行, 但在 debain 中改行不能正常执行。
默认 if [ [${logExists} -eq 1 ] ]; then 报错 [: Illegal number: [
改为 if ( "${logExists}" -eq 1 ) then 报错 : Permission denied
改为 if [ "${logExists}" -eq 1 ]; then 报错 [: Illegal number:
请教各位大神们,该问题 何解~~~~~!
Permission denied应该是权限不够,可能语法是对的,其他两个错误是语法不对。
用chmod修改下权限再试试。
希望能帮到你。
该文件的权限 chmod 给的是 777 ,还是报错呢。
/opt/scripts/chkconns_log/chklog.log这个文件有权限?
楼主很可惜shell不像其他语言一样可以直接函数返回值进行调用, 使用return 只能通过 $?来进行获取返回的值, 我操作了一遍,如果非要实现的话,可以使用变量的赋值来实现
if [ -f ${logFile} ]; then
echo Log file is exists !
x=0;
else
echo Log file is not exists ! ${logFile}
x=1;
fi
.....
if [[ ${x} -ne 0 ]]; then
这样就可以实现了