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

回到顶部