使用shell脚本进行数据库登录

时间:2018-01-17 11:15:10

标签: bash shell

这是我的应用程序在server.properties文件中的数据库条目。

umpdb.driverClassName=org.mariadb.jdbc.Driver
umpdb.url=jdbc:mysql://10.66.11.44:3306/MT_SMS_CHN?useUnicode=true&characterEncoding=UTF-8
umpdb.username=stackuser
umpdb.password=stackpass

我想使用linux命令打印mysql -uuser -ppasswrod -hhostname dbname

这意味着,我需要输出如下

mysql -ustackuser -pstackpass -h10.66.11.44 MT_SMS_CHN

请帮助我。

1 个答案:

答案 0 :(得分:0)

使用awk

awk -F'[:=/?]' '/url/{
                     h=$6" "$8              # get host and database
                }
                /username/{
                     u=$2                   # get username
                }
                /password/{
                     # print username, password, host and database
                     printf("mysql -u%s -p%s -h%s\n",u,$2,h); 

                     # we got what we want, exit
                     # if your file contains more than 1 db config 
                     # just comment below exit keyword

                     exit
                }
                ' server.conf

测试结果:

$ cat server.conf 
umpdb.driverClassName=org.mariadb.jdbc.Driver
umpdb.url=jdbc:mysql://10.66.11.44:3306/MT_SMS_CHN?useUnicode=true&characterEncoding=UTF-8
umpdb.username=stackuser
umpdb.password=stackpass

$ awk -F'[:=/?]' '/url/{h=$6" "$8}/username/{u=$2}/password/{printf("mysql -u%s -p%s -h%s\n",u,$2,h); exit}' server.conf 
mysql -ustackuser -pstackpass -h10.66.11.44 MT_SMS_CHN