我正在编写一个Bash shell脚本来每天备份我们的请求跟踪器(RT)MySQL数据库。 而不是在shell脚本中对MySQL数据库用户的密码进行硬编码,我想从RT的RT_SiteConfig.pm文件中parsing它。 RT_SiteConfig.pm中的相关行如下所示:
Set($DatabasePassword , 'db_pw_here');
给出上面一行,只提取string“db_pw_here”的“最干净的”方法是什么?
“最干净的”方法是编写一些Perl代码来使用RT API来提取DatabasePassword的值。 我现在无法使用RT实例来尝试这个,但不应该是非常困难的。
您可能可以将一行Perl程序集成到您的bash脚本中以获取值,如下所示:
perl -MRT::Config -e 'print $RT::Config::DatabasePassword'
请注意,这个命令行是完全虚构的。 阅读文档以查找实际的调用。
现在,不那么干净,但可能完全有效的是使用sed来提取信息:
sed -n "/Set(\$DatabasePassword/ s/.*'\([^']*\)'.*/\1/p"