if 조건에서 '-z "${line}"'의 의미

if 조건에서 '-z "${line}"'의 의미

다음 코드의 if 조건에서 -z "${line}"은 무엇을 의미합니까?

while read line
do
if [ -z "${line}" ]; then
echo "file empty "
exit
fi
done < $FILE

if 조건이 정확히 무엇을 확인하는지 알려주세요.

답변1

변수 $line(여기서는 동일 ${line})가 비어 있는지(문자를 포함하지 않음) 테스트합니다. read작업이 파일 끝에 도달 하면 이러한 상황이 발생합니다.

후속 댓글에서는 그것이 무엇 z에 사용되었는지(무엇을 의미하는지) 물었습니다. 이것[연산자에 해당test유용, POSIX 문

-z
문자열 string의 길이가 True인 경우; 그렇지 않으면 거짓입니다.

따라서 -z처음에는 니모닉 값 때문에 선택되었을 것입니다. 가장 오래된 버전에서는 사용할 수 없습니다.test(Unix 7th, 1979)에 등장했지만8판(1985):

-z s1    true if the length of string s1 is zero.

버전 7에는 문서화되지 않았지만 같은 시기에 3BSD에 나타났기 때문에(CSRG CD1의 1979년 2월 파일) BSD에서 나온 것으로 보입니다.

모든 옵션이 test문자와 의미 사이에 명확한 관계를 갖는 것은 아닙니다. 이 단어는 일찍 나오므로 의미와 관련된 문자를 선택하세요.

관련 정보