编辑:现在这个工作。我把它复制到我的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
答案 0 :(得分:0)
出于测试目的,我将
php -l
存储在变量$ STUFF中,如果what
的返回状态为0,则返回php -l
这不是你的代码所说的。您的代码存储php -l
的输出,然后将其与0进行比较;命令的返回状态存储在$?
中。与往常一样,您可以直接在if
中检查非归零状态。
if php -l ...