ディレクトリ内のすべてのファイルに対して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