PHP Lash的Bash脚本总是返回0

时间:2014-11-24 06:35:53

标签: git bash phplint

编辑:现在这个工作。我把它复制到我的CentOS盒子里,就像一个魅力。我在Windows上测试这个脚本,它只返回0(即使PHP LINT发出错误)

这个bash脚本应该执行PHP LINT CHECKER。无论我向php -l提供哪些文件,它总是返回0(成功)。我甚至故意导致我的一个文件出现语法错误(缺少分号),但它仍然返回0.

出于测试目的,我将php -l存储在变量$ STUFF中,如果what的返回状态为0,则返回php -l

我尝试了很多其他方法,但php -l一直返回0(成功)

#!/bin/bash

DIFF_FILES=$(git diff --cached --name-status --diff-filter=AM | awk '{print $2}')

function syntaxChecker() {
    for files in $DIFF_FILES; do
        STUFF=$(/c/PHP/php -l $files)
        if [ $STUFF -eq 0 ]; then
            echo 'what'
        fi
done
}

syntaxChecker

1 个答案:

答案 0 :(得分:0)

  

出于测试目的,我将php -l存储在变量$ STUFF中,如果what的返回状态为0,则返回php -l

这不是你的代码所说的。您的代码存储php -l输出,然后将其与0进行比较;命令的返回状态存储在$?中。与往常一样,您可以直接在if中检查非归零状态。

if php -l ...