bash命令管道(和php):如何从命令行检查所有子目录中的每个php文件?

时间:2015-05-21 12:37:03

标签: bash

我正试图通过我的项目dirs和subdirs递归循环,并检查php命令行的语法。

我可以使用

列出所有php文件
find ./ -name '*.php'

我可以检查单个php php

php -l ./full/path/to/file/filename.php

但我不能让他们一起工作

 find ./ -name '*.php' | php -l

这真的不做任何检查。我尝试在文件中强制语法错误,但每次都告诉我:

No syntax errors detected in -

如何正确管道每个文件名以进行php语法检查?

随意调整标题和/或问题,我的英语不太好。

编辑1:我在stackoverflow上搜索并尝试了这些,但没有成功

$ find ./ -name '*.php' | xargs -0 "php -l"
xargs: argument line too long

编辑2:另一次尝试

$ find ./ -name '*.php' -exec php -l
find: missing argument to `-exec'

2 个答案:

答案 0 :(得分:1)

您可以使用

运行带有每个文件名的php命令
find ./ -name '*.php' -exec php -l {} \;

答案 1 :(得分:1)

您可以在shell循环中执行此操作:

for file in $(find ./ -name '*.php')
do
  php -l "${file}"
done