Linux Shell脚本-带通配符的字符串比较
我正在尝试查看一个字符串是否是Shell脚本(#!bin / sh)中另一个字符串的一部分。
我现在的代码是:
#!/bin/sh#Test scriptje to test string comparison!
testFoo () {
t1=$1
t2=$2
echo "t1: $t1 t2: $t2"
if [ $t1 == "*$t2*" ]; then
echo "$t1 and $t2 are equal"
fi
}
testFoo "bla1" "bla"
我要寻找的结果是,我想知道“ bla1”中何时存在“ bla”。
谢谢和亲切的问候,
帮帮我?
回答:
在bash中,您可以编写(注意星号在引号 之外 )
if [[ $t1 == *"$t2"* ]]; then echo "$t1 and $t2 are equal"
fi
对于/ bin / sh,=
运算符仅用于相等性,不适用于模式匹配。您可以使用case
,虽然
case "$t1" in *"$t2"*) echo t1 contains t2 ;;
*) echo t1 does not contain t2 ;;
esac
如果您专门针对Linux,则假定存在/ bin / bash。
以上是 Linux Shell脚本-带通配符的字符串比较 的全部内容, 来源链接: utcz.com/qa/430000.html