shell スクリプトの if 文の条件内で、バッククォートによるコマンド置換がしたい


sh のコードを短くしたいです。

[code]

    RES=`service httpd status`
    if [ "$RES" = 'httpd is stopped' ]; then
      echo "stopped"
    fi
    
[/code]

↓ 以下のように

[code]

    if [ `service httpd status` = 'httpd is stopped' ]; then
      echo "stopped"
    fi
    
[/code]

ただ、`service httpd status`の書き方がまずいみたいで、 _too many arguments_ と出てしまいます。
どのように記述すればいいでしょうか？

よろしくお願いします。




提示されたコードですと、 `service httpd status` の実行結果による置き換えで

[code]

    if [ httpd start/running, process XXXX = 'httpd is stopped' ]; then
      echo "stopped"
    fi
    
[/code]

のようになってしまうのが原因だと思われます。 ダブルクオートで囲って

[code]

    if [ "`service httpd status`" = 'httpd is stopped' ]; then
      echo "stopped"
    fi
    
[/code]

とすれば大丈夫でしょう。




提示されたコードですと、 `service httpd status` の実行結果による置き換えで

[code]

    if [ httpd start/running, process XXXX = 'httpd is stopped' ]; then
      echo "stopped"
    fi
    
[/code]

のようになってしまうのが原因だと思われます。 ダブルクオートで囲って

[code]

    if [ "`service httpd status`" = 'httpd is stopped' ]; then
      echo "stopped"
    fi
    
[/code]

とすれば大丈夫でしょう。

