ksh - 如果变量中的最后一个字母是p,则退出脚本

时间:2016-03-19 04:29:35

标签: ksh

我正在编写一个ksh脚本来刷新从prod到dev / test / qa环境的模式。我想进行灾难检查,我要求用户输入源和目标数据库以及模式名称。当用户意外输入prod数据库作为目标数据库名称时,我希望脚本退出。在我们的环境中,生产数据库名称以p结尾,后跟01,02,03等。

示例名称:

DBP DBPP dbpp01 dbpp02 cdp01 sedpbp retpp01 PORP01 PORPP01

如何检查最后一个字母不是我的变量字符串的数字是p还是P?。

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

SCHEMA=dbp
case $SCHEMA in
   *[pP] | *[pP]0[0-9] ) echo OK
   ;;
   * ) echo Error
   ;;
esac  

答案 1 :(得分:0)

我添加了另一个检查,检查源数据库名称和目标数据库名称是否相同。

案例“$ tarSID”in   * [pP] | * [pP] 0 [0-9] | “$ tarSID”= “SsrcSID”)      echo“警告:目标数据库无法生成或与Prod相同”      echo“重新输入目标数据库名称      ;;   *)   ;;

再次感谢Alvin