2011-09-30 2 views
0

각 파일에 다단계 조건부 작업을 수행하는 말을 내가 구문 오류를 확인 각 PHP 파일에 대한 간단한 php -l $file를 실행하려면
/mylibsExec과 함께 찾을 : 어떻게 디렉토리 구조에 PHP 파일의 무리가

find /mylibs -type f -iname "*.php" -exec php -l {} &>/dev/null \; 
오류가있는에 따라 발견되지 않는 경우

그게 전부가 한 단계의 &>을/dev/null가 PHP (발견 구문 오류 여부)

php -l 반환 0에서 자세한 출력을 먹고, 나는 몇 가지에 복사 할 다른 dir은라고 말합니다. 10. 이것이 내가

find /mylibs -type f -iname "*.php" -ok php -l {} &>/dev/null ; echo $? \; 

을 시도 예상대로 작동하지만이 단순히 터미널에서 1을 출력하고 확인을 요청하지 않는 경우 내가 뭘

(-ok 인터랙티브 확인 후 간부와 같은 역할을) 확인하려면 여기서 뭐라구? 이것을 할 수 없습니까?

당신은 사용할 수 있습니다

답변

1

while loop :

find /mylibs -type f -iname "*.php" | while IFS= read -r path 
do 
    php -l "$path" &>/dev/null 
    if [ $? -eq 0 ] 
    then 
     cp "$path" /mybin 
    fi 
done 
+1

또는 못생긴'if'없이'php -l "$ path"& gt;/dev/null && cp "$ path"/ mybin'. – tripleee

0

가 U이 작동합니까?

find ....|xargs awk '{r=system("php -l "$0" &>/dev/null"); if(!r) system("cp "$0" /path/to/targetDir")}' 
+0

내가 찾는다. -t f -follow -name "* .php"| xargs awk '{r = system ("php -l"$ 0 "&>/dev/null"); } awk : line 1 : 런 어웨이 문자열 상수 ")} ... ... 나는 awk 마술을 정말 좋아했다 : D 우리는 단지 그것을 작동시킬 필요가있다 :) – Sudhi

+0

귀하의 의견에 awk 라인에 문제가 있습니다. system ("echo"$ 0'[without here]') – Kent

관련 문제