2011-09-04 14 views
1

ls -1 *.php | xargs php -l不起作用,任何線索爲什麼? (它只檢查第一個文件)驗證整個目錄中的PHP語法,xargs

我想在我的整個應用程序中檢測到分析錯誤。

謝謝。

編輯:

想出了這個,就足夠滿足我的需求:

#!/bin/sh 

for chave in `find . | grep .php` ; do 
    php -l $chave 
done 

回答

4
find . -name '*.php' -print0 | xargs -0 -L 1 php -l 

這樣做不管你的文件名包含哪些字符工作的額外獎金。不幸的是我不知道爲什麼它不無-L 1份工作:(

+0

的'-L 1'參數使得它在所有上述工作('ls'只能用於當前目錄)!'-print0'和'-0'參數也不是必需的。 – Niloct

+0

當你100%確定你的文件名不包含時,它們不是必需的「外來」字符,shell可能會擴展 –

+0

在'xargs'命令中加入'-P 8'來啓用並行處理(在這種情況下,最多可以同時進行8次調用)。適當的狀態代碼,但速度很快! 對於前充足:「找到。 -name'* .php'-print0 | xargs -0 -L 1 -P 8 php -l'。 – Krinkle

0

只打印失敗的一次:

find . -name '*.php' -print0 | xargs -0 -L 1 php -l | grep -v 'No syntax errors detected in ./'