Fish의 변수가 비어 있는지 확인하십시오.

Fish의 변수가 비어 있는지 확인하십시오.

피쉬(친숙한 대화형 셸)에서 변수가 비어 있는지 상태를 확인하고 싶습니다.

if test "$argv" = null
    # do something...
else 
    # do something else...

답변1

나는 "물고기"를 구체적으로 모르지만 표준적인 "테스트"를 알고 있습니다.

노력하다:

test "$argv" = ""

또는

test "x$argv" = x

또는

test -z "$argv"

이는 설정되지 않았거나 비어 있는지 테스트한다고 가정합니다. 이 두 가지 경우 중 하나만 필요한 경우 쉘별 변수 확장 수정자가 필요합니다.

두 번째 예는 이식성을 높이려는 코드에 자주 나타납니다. null 매개변수는 때때로 손실되는 것처럼 보이므로 이를 방지합니다.

세 번째 예는 test빈 문자열을 테스트하는 옵션입니다.

답변2

피쉬에 대해서는 잘 모르지만 다른 쉘과 마찬가지로 정의되지 않은 변수와 빈 변수의 구분이 있는 것 같습니다.

FAQ를 보면 그럴 수 있을 것 같습니다.변수가 정의되었는지 테스트with 를 set -q var사용하여 string length -q비어 있지 않은 문자열이 포함되어 있는지 확인합니다.

예를 들어, 스크립트의 첫 번째 매개변수가 정의되었는지, 비어 있는지 또는 비어 있지 않은지 확인하려면 다음을 수행하세요.

#!/usr/bin/fish
if not set -q argv[1]
    echo 'not defined'
else if not string length -q -- "$argv[1]"
    echo 'defined but empty'
else
    echo 'defined and non-empty'
end 

정의되지 않은 변수와 정의되었지만 빈 변수의 차이에 신경 쓰지 않는다면 첫 번째 테스트를 건너뛰세요. 정의되지 않은 값은 큰따옴표로 묶인 경우 빈 문자열로 확장됩니다.

관련 정보