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한 번에 하나의 파일만 처리합니다(인용하다). 내 가장 짧은(방탄이 아닌) 아이디어 중 하나:

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

또는 사용할 수 있는 다른 확장 *으로 수정됩니다 . *.js확장명이 여러 개인 경우 다음 위치에 입력하세요.

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

관련 정보