Bash 包含不工作

Bash contains not working

我试过这个:

http://timmurphy.org/2013/05/13/string-contains-substring-in-bash/

其中 none 为我工作。

我的代码是:

     if [[ "$MYSQLRPMSHARED" == *"$MYSQLDB"* ]]; then
         echo "True"
     else
         echo "Failed."
     fi

我通过这些命令获得了 MYSQLRPMSHARED 和 MYSQLDB 变量:

MYSQLDB=$(mysql -uroot -p -e "select @@version" | sed 's/[^0-9.]//g')
MYSQLRPMSHARED=($(rpm -qa | grep MySQL-shared))

他们的结果是:

5.5.28
MySQL-shared-compat-5.5.28-1.rhel5

但是当我触发 IF 时,我得到 "Failed." 当我将 5.5.28 而不是 $MYSQLDB 放在 IF 语句中时,我得到 "True" 答案而不是 "Failed."

问题出在哪里?我正在使用 3.2.25 bash.

您可以使用

删除非数字行并仅保留版本
MYSQLDB=$(mysql -uroot -p -e "select @@version" | awk -F"[ -]" '/[0-9]/{print }')