次の行を含むスクリプトがあります。
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 を出力します。引用符やその他のものの多くの組み合わせを試しましたが、うまくいきませんでした。引用符と目盛りと一重引用符に何が埋め込まれているのかわかりません。