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 }')
我试过这个:
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 }')