Linux Shell Script - Сравнение строк с подстановочными знаками

Я пытаюсь проверить, является ли строка частью другой строки в оболочке script (#! 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"

Результат, который я ищу, заключается в том, что я хочу знать, существует ли "bla" в "bla1".

Спасибо и любезны,

UPDATE: Я пробовал использовать функцию "contains", как описано здесь: Как вы определяете, содержит ли строка строку в сценариях Unix shell?

Как и синтаксис String содержит в bash

Однако они кажутся несовместимыми с обычной оболочкой script (bin/sh)...

Справка

Ответ 1

В 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.