次のコードを実行するとき:
DEAD_PROCESS_STATE=$(ps -o state | grep -i z | wc -l)
if [ ${DEAD_PROCESS_STATE} -gt 0 ]
then
echo "..."
else
echo "..."
fi
次のメッセージを受け取りました。
line 12: [: -gt: unary operator expected
12行目は以下を指す。
if [ ${DEAD_PROCESS_STATE} -gt 0 ]
何が問題なのかよく分からない。一重引用符の中にゼロを入れようとしましたが、まだ機能しません。誰もがエラーがどこにあるかを見ることができますか?コードはまだ実行され、私が設定した正しい電子メール通知などを送信します。このメッセージが表示される原因は何ですか?
ベストアンサー1
次のコマンドラインを使用します。
if [ -gt 0 ]
${PROCESS_STATE} は初期化されていない変数なので、空に拡張されるからです。
したがって、以下を使用することをお勧めします。
if [ "${PROCESS_STATE}" -gt 0 ]
正しい数のパラメータを使用していることを確認してください。
${PROCESS_STATE}
注:テキストにスペルエラーがあることを確認すると、その理由と何も拡張されない理由がわかります。