0

編集:これは今すぐ機能します。これを CentOS ボックスにコピーしたところ、魅力的に機能します。このスクリプトを Windows でテストしていましたが、0 しか返されません (PHP LINT でエラーが発生した場合でも)。

この bash スクリプトは、PHP LINT CHECKER を実行することになっています。にどのファイルをフィードしてもphp -l、常に 0 (成功) が返されます。ファイルの 1 つに構文エラー (セミコロンの欠落) を意図的に発生させましたが、それでも 0 が返されます。

テスト目的でphp -l、変数 $STUFF に格納しwhat、戻りステータスphp -lが 0の場合に戻すようにしました

他の多くの方法を試しましたが、php -l0 (成功) を返し続けます

#!/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の場合に戻すようにしました

それはあなたのコードが言うことではありません。コードは の出力を格納し、php -lそれを 0 と比較します。コマンドの戻りステータスは に格納され$?ます。いつものように、ゼロ以外のリターン ステータスを で直接確認できますif

if php -l ...
于 2014-11-24T06:39:05.727 に答える