Fishの2つの文字列を("abc" == "def"
他の言語のように)どのように比較しますか?
これまでのところ、contains
(が空の文字列の場合にcontains "" $a
のみ返されることがわかりましたが、すべての場合に機能するとは限りませんでした)と(aとaを使用)の組み合わせを使用しました。ただし、これらの方法はどちらも特に...正しいようには見えません。0
$a
switch
case "what_i_want_to_match"
case '*'
Fishの2つの文字列を("abc" == "def"
他の言語のように)どのように比較しますか?
これまでのところ、contains
(が空の文字列の場合にcontains "" $a
のみ返されることがわかりましたが、すべての場合に機能するとは限りませんでした)と(aとaを使用)の組み合わせを使用しました。ただし、これらの方法はどちらも特に...正しいようには見えません。0
$a
switch
case "what_i_want_to_match"
case '*'
if [ "abc" != "def" ]
echo "not equal"
end
not equal
if [ "abc" = "def" ]
echo "equal"
end
if [ "abc" = "abc" ]
echo "equal"
end
equal
または1つのライナー:
if [ "abc" = "abc" ]; echo "equal"; end
equal
のマニュアルにtest
はいくつかの役立つ情報があります。で利用できますman test
。
Operators for text strings
o STRING1 = STRING2 returns true if the strings STRING1 and STRING2 are identical.
o STRING1 != STRING2 returns true if the strings STRING1 and STRING2 are not
identical.
o -n STRING returns true if the length of STRING is non-zero.
o -z STRING returns true if the length of STRING is zero.
例えば
set var foo
test "$var" = "foo" && echo equal
if test "$var" = "foo"
echo equal
end
の代わりに[
andを使用することもできます。]
test
魚の偽物である空の文字列または未定義の変数をチェックする方法は次のとおりです。
set hello "world"
set empty_string ""
set undefined_var # Expands to empty string
if [ "$hello" ]
echo "not empty" # <== true
else
echo "empty"
end
if [ "$empty_string" ]
echo "not empty"
else
echo "empty" # <== true
end
if [ "$undefined_var" ]
echo "not empty"
else
echo "empty" # <== true
end