0

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

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

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

我尝试了许多其他方法,但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
4

1 回答 1

1

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

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

if php -l ...
于 2014-11-24T06:39:05.727 回答