在fish shell中如何测试子字符串的存在?例如,在switch
表达式中:
set myvar "a long test string"
switch $myvar
case magical-operator-here "test string"
echo 'yep!'
case '*'
echo 'nope!'
end
在fish shell中如何测试子字符串的存在?例如,在switch
表达式中:
set myvar "a long test string"
switch $myvar
case magical-operator-here "test string"
echo 'yep!'
case '*'
echo 'nope!'
end
*
是通配符,因此
set myvar "a long test string"
switch $myvar
case "*test string"
echo 'yep!'
case '*'
echo 'nope!'
end
如果您想测试它是否以该字符串结尾。 如果它还可以出现在中间,请在末尾添加另一个*
。
此外,自2.3.0以来,fish已具有一个string
内置程序,其中包含一个match
子命令,因此您也可以使用string match -q -- "*test string" $myvar
。 它还支持带有“-r”选项的pcre样式正则表达式。
set myvar "a long test string" switch $myvar case "*test string*" echo 'yep!' case '*' echo 'nope!' end
- WeiHua Liu