나는 이것을 할 수 있는 방법이 있다는 것을 알고 있지만, 인터넷 검색은 항상 끔찍한 결과를 낳습니다.
나하고 싶어:
if [[ ! -z "$var" ]]; then
# ....
fi
하지만 지금은 기억이 나지 않습니다. 다음과 같은 것 같아요.
if [[ -p "$var" ]]; then
# ....
fi
또는 다음과 같습니다:
if [[ -n "$var" ]]; then
# ....
fi
누구든지 검색 엔진에 표시될 좋은 답변을 제공할 수 있습니까? 제목을 최적으로 편집하면 도움이 되기를 바랍니다.
답변1
-n
테스트("주어진 문자열의 길이가 0이면 true")와 반대로 테스트 -z
("주어진 문자열의 길이가 0이 아니면 true")를 수행 해야 합니다 .
테스트 -p
는 완전히 다릅니다("주어진 파일이 존재하고 명명된 파이프인 경우 true").
bash
대화형 셸에 다음을 입력하여 이 정보를 얻을 수 있습니다.
help test
test
그러면 내장 유틸리티에 대한 문서가 제공됩니다 (이것은 [
; see 의 또 다른 변형이며 ; see help [
와 [[
동일한 테스트를 사용합니다 help [[
). 또한 "라는 제목의 문서에 설명되어 있는 bash
시스템 설명서( )를 볼 수도 있습니다 .man bash
조건식".
따라서 귀하의 코드는 다음 중 하나가 될 것입니다
if [[ -n $var ]]; then ...; fi
if [ -n "$var" ]; then ...; fi
if test -n "$var"; then ...; fi
그렇게 말하면 별 문제 없을 것 같은데.
if [[ ! -z $var ]]; then ...; fi
예를 들어 값이 비어 있는지 확인하고 값이 비어 있지 않으면 오류 메시지를 출력하려는 경우입니다. 그러면 코드는 다음과 같은 의도를 기록합니다.비어 있지 않음, 뭔가 문제가 있습니다”.