2014-03-28 47 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,如果你的問題不再相關,隨時刪除它。未來不太可能幫助其他人。 –