编辑:现在可以了。 我将其复制到我的 CentOS 盒子中,它就像一个魅力。 我在 Windows 上测试这个脚本,它只返回 0(即使 PHP LINT 给出错误)
这个 bash 脚本应该执行 PHP LINT 检查器。 无论我向
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
出于测试目的,我将
存储在变量 $STUFF 中,并且如果php -l
的返回状态为 0what
,则返回php -l
你的代码不是这么说的。您的代码存储 php -l
的
output,然后将其与 0 进行比较;命令的返回状态存储在
$?
中。与往常一样,您可以直接在 if
中检查非零返回状态。
if php -l ...