shell if 判断方法返回结果的问题

 #!/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


这样就可以实现了