bashのファイルグロービングはphp -lによって選択されていません

bashのファイルグロービングはphp -lによって選択されていません

ディレクトリ内のすべてのファイルに対してPHP関数を実行しようとしていますが、lint予想よりも困難です。 (ここにPHP以外のファイルがあることを知っています。今はそれを気にしません。)私が試したことは次のとおりです。

$> php -l *
No syntax errors detected in embeddedlabels.js
$> php -l \*
Could not open input file: *
$> ls *
embeddedlabels.js  README.txt  myfile.admin.inc  myfile.css  myfile.info  myfile.install  myfile.js  myfile.module
$> php -l $(ls *)
No syntax errors detected in embeddedlabels.js

に基づいてここのドキュメント、私はこれを試しました:

$> echo *
embeddedlabels.js README.txt myfile.admin.inc myfile.css myfile.info myfile.install myfile.js myfile.module

$> php -l $(echo *)
No syntax errors detected in embeddedlabels.js

しかし、まだ運がありません。どうすればいいですか?

答え1

ループを防ぐには、次のものを使用できますxargs

ls * | xargs -I{} php -l {}

名前に改行文字を含むファイルでは機能しません。

答え2

シェルワイルドカード(おそらく)は成功してファイルをに渡しphp -lますが、php -l一度に1つのファイルのみを処理します(引用する)。私の最も短い(防弾ではない)アイデアの1つ:

for f in *; do php -l "$f"; done

または利用可能な他の拡張機能*に変更されます。*.js複数の拡張子がある場合は、次の場所に入力してください。

for f in *.js *.inc *.module; do php -l "$f"; done

関連情報