上記のように。
基本的に私は次のようなものを実装したいと思います。
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 insome_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
(GNUgrep
など--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