![bash의 if 조건에서 -s 및 [[]]는 무엇을 의미합니까?](https://linux55.com/image/108653/bash%EC%9D%98%20if%20%EC%A1%B0%EA%B1%B4%EC%97%90%EC%84%9C%20-s%20%EB%B0%8F%20%5B%5B%5D%5D%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
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
참조된 파일이 비어 있지 않은지 여부를 테스트하는 연산자를 사용하고 있습니다.