在过去的几天里,我一直试图理解为什么我的脚本失败了,并且执行都在错误中引用了这部分代码(这篇文章的伪代码):
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
我想知道我能不能指出一下我在这里做错了什么。我为缺乏实际代码和语法而道歉。
答案 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
仅在命令开始时是特殊的。