Bash Script для PHP Lint всегда возвращает 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
1 ответ
Для тестирования у меня есть
php -l
хранится в переменной $STUFF и возвращает егоwhat
если статус возвратаphp -l
это 0
Это не то, что говорит ваш код. Ваш код хранит вывод php -l
а затем сравнивает это с 0; статус возврата команды хранится в $?
, И, как всегда, вы можете проверить ненулевой статус возврата прямо в if
,
if php -l ...