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 "重新输入目标数据库名称
;;
* )
;;
再次感谢阿尔文
我正在编写一个 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 "重新输入目标数据库名称 ;; * ) ;;
再次感谢阿尔文