bash의 if 조건에서 -s 및 [[]]는 무엇을 의미합니까?

bash의 if 조건에서 -s 및 [[]]는 무엇을 의미합니까?

if [[ -s log.txt ]];

-s은 무슨 뜻인가요? -z는 크기가 0인 문자열을 의미한다는 것을 알고 있습니다. -s에 대한 문서를 찾을 수 없습니다.

조건을 작성할 때 [] 또는 [[]]는 무엇을 의미하나요 if? [] 또는 [[]] 없이 사용했는데 if잘 작동합니다.

답변1

테스트는 -s다음과 같은 경우 true를 반환합니다.

[...] 파일이 존재하고 크기가 0보다 큰 경우

bash이는 유틸리티 매뉴얼뿐만 아니라 매뉴얼에도 문서화되어 있습니다 test(테스트도 작성할 수 있습니다 if test -s file; then).

다음을 참조 [ ... ]하세요 [[ ... ]]:Bash - 구문이 혼란스러운 경우

답변2

-s파일: - 파일이 존재하며 크기가 0보다 큽니다.

[[ ... ]] 섹션에서는 연산자를 사용하여 조건을 테스트할 수 있습니다. if문이라고 생각하시면 됩니다. 귀하의 예에서는 -s참조된 파일이 비어 있지 않은지 여부를 테스트하는 연산자를 사용하고 있습니다.

관련 정보