如果失败则嵌套 - 伪代码样本

时间:2017-12-07 21:20:36

标签: linux bash scripting

在过去的几天里,我一直试图理解为什么我的脚本失败了,并且执行都在错误中引用了这部分代码(这篇文章的伪代码):

if [ -z "${removed-unset}" ]; then
    ABC
    else
        if [ "$(date +%u)" == 4 ];  then
            if test `find "ABC" -cmin +2880` then
                if [ ! -f /tmp/ABC ]; then
                    CODE HERE
                        if [[ -s ABC ]]; then
                            CODE HERE
                                if [ -z "${ABC-unset}" ]; then
                                     CODE HERE
                                else
                                     CODE HERE
                                fi
                         else
                             rm ABC
                         fi
                 else
                     CODE HERE
                 fi
             else
                 CODE HERE
             fi
    else
        CODE HERE
    fi
fi

我想知道我能不能指出一下我在这里做错了什么。我为缺乏实际代码和语法而道歉。

1 个答案:

答案 0 :(得分:0)

ShellCheck指出您错过了分号:

if test `find "ABC" -cmin +2880` then
                                 ^-- SC1010: Use semicolon or linefeed before 'then' 
                                             (or quote to make it literal).

只需按照建议插入:

if test `find "ABC" -cmin +2880`; then

这是必需的,因为then仅在命令开始时是特殊的。