테스트 파일은 1개의 파일에서만 작동합니다. 2개의 파일에서 작동하도록 하려면 어떻게 해야 합니까? [복사]

테스트 파일은 1개의 파일에서만 작동합니다. 2개의 파일에서 작동하도록 하려면 어떻게 해야 합니까? [복사]

xyz.PDF 파일이 있으면 작동합니다.

[ -e *.PDF* ] && echo 'yes'

그러나 다음과 같은 두 개의 파일이 있는 경우

xyz.PDF
abc.PDF

알겠어요

$ [ -e *.PDF* ] && echo 'yes'
-bash: [: sometstgg.PDF: binary operator expected

이 문제를 해결하고 1개 이상의 파일을 허용하려면 어떻게 해야 합니까?

답변1

set -- *.PDF

[ "$#" -gt 0 ] && [ "$*" != "*.PDF" ] && echo 'yes'

아마도 더 나은 해결책이 있을 것입니다. *.PDF실제 이름이 있는 항목이 있으면 실패할 것이기 때문입니다.

bash그 정도면 충분하다고 생각 하니까

shopt -s nullglob
set -- *.PDF

[[ "$#" -gt 0 ]] && echo yes

에서는 ksh93이것으로 충분해 보입니다:

[ -e *.PDF ] && echo yes

관련 정보