【问题标题】:If string contains in case statement如果字符串包含在 case 语句中
【发布时间】:2014-05-07 21:00:03
【问题描述】:

我希望根据子字符串是否在文件名中提供 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

【问题讨论】:

    标签: string bash shell switch-statement substring


    【解决方案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
    

    【讨论】:

    • 对不起,我是一个绝对的迟到者最终调用了错误的变量名,所以我很糟糕。
    • 没关系,你的问题已经解决了,这才是最重要的 ;-)
    • @user2373636,如果您的问题不再相关,请随时将其删除。以后不太可能帮助别人。
    猜你喜欢
    • 1970-01-01
    • 2020-01-15
    • 2015-11-08
    • 2014-07-02
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多