我有一个包含这一行的脚本:
if [ -z "`/sbin/service mysqld status | grep 'mysqld (.*) is running'`" ] ; then
我想用变量替换服务名称和 grep 正则表达式。不同版本的 OS/MySQL 有不同的服务名称和报告不同的状态。我厌倦了编辑代码中的行。所以我这样做了:
SERVICE_NAME=mysql
SERVICE_RUNNING_STR="MySQL (.*) running"
...
if [ -z "`/sbin/service $SERVICE_NAME status | grep '$SERVICE_RUNNING_STR'`" ] ; then
...
除非它不起作用。它在 grep 语句中输出 SERVICE_RUNNING_STR。我尝试了许多引号和其他东西的组合,但都没有奏效。我不确定嵌入引号、刻度和单引号中需要什么。