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

ksh - exit script if last alphabet in variable is p

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

示例名称:

dbp 分贝 dbpp01 dbpp02 CDP01 sedpbp retpp01 PORP01 PORPP01

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

尝试以下操作:

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

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

案例“$tarSID”在 *[pP] | *[pP]0[0-9] | "$tarSID"="SsrcSID") 回声 "Warning: Target Database Cannot be Prod or same as Prod" echo "重新输入目标数据库名称 ;; * ) ;;

再次感谢阿尔文