2014-03-28 32 views
0

我希望根据子字符串是否在文件名内提供case语句。BASH如果字符串包含在case语句中

例输入

mysql_dumps/tpmysqldump-tps_dev_russell_development-INFORMATION_SCHEMA-2014-03-26.sql

代码

case $DUMPFILE in 
     *"tpdata"*) 
      database="tpdata";; 
     *"tpmrbs"*) 
      database="tpmrbs";; 
     *"information_schema"*) 
      database="information_schema";; 
     *"performance_schema"*) 
      database="performance_schema";; 
     *) 
      echo "INVALID FILE";; 
    esac 

任何想法,为什么这是不工作?

回答

1

如何初始化$ DUMPFILE?如果我运行下面的输出是information_schema,这是我的预期......

#!/bin/bash 
DUMPFILE=mysql_dumps/tpmysqldump-tps_dev_russell_development-information_schema-2014-03-26.sql 
case $DUMPFILE in 
    *"tpdata"*) 
     database="tpdata";; 
    *"tpmrbs"*) 
     database="tpmrbs";; 
    *"information_schema"*) 
     database="information_schema";; 
    *"performance_schema"*) 
     database="performance_schema";; 
    *) 
     echo "INVALID FILE";; 
esac 
echo $database 
+0

对不起,我是一个绝对的TARD最终调用了错误的变量名称,以便mybad。 – Charabon

+0

没关系,你的问题解决了,这就是所有问题;-) – slu

+1

@ user2373636,如果你的问题不再相关,随时删除它。未来不太可能帮助其他人。 –