위와 같이.
기본적으로 나는 다음과 같은 것을 구현하고 싶습니다.
if not match then
do these things
else
do these other things
fi
감사해요
답변1
일치의 의미에 따라 다르지만 "정확한 일치"를 의미하는 경우 string match
간단한 매개변수와 함께 내장 함수를 사용할 수 있습니다.
if not string match --quiet -- "some_string" $some_argument
echo no match
else
echo match
end
문자열 내에서 일치시키려면 glob in some_string
또는 정규 표현식을 와 함께 사용할 수 있습니다 string match --regex
.
답변2
대안으로 not string match -q -- $pattern $string
(예:@Zanchey가 언급했습니다.) 다음을 수행할 수도 있습니다.
if string match -vq -- $pattern $string
echo no match
else
echo match
end
( -v
in 과 같 grep
거나 --invert
( GNU grep
와 같은 --invert-match
) 일치를 반대로 합니다.)
여러 문자열(예: 여러 요소가 포함된 목록)에 대해 패턴을 일치시킬 때 $string
또는 문자열을 전혀 일치하지 않을 때( 빈 목록) $string
차이점을 확인할 수 있습니다 .
if not string match -q -- $pattern $string1 $string2
echo none of the strings matched
else
echo at least one the strings matched
end
if string match -vq -- $pattern $string1 $string2
echo at least one of the strings did not match
else
echo all the strings matched
end