0
if [ $(ps -ef | grep date) ] && [ $(ps -ef | grep time) ]
then
     echo "success"
else
    exit 1
fi

[: 引数エラーが多すぎます

何がうまくいかないのですか?


コメントから:

実行中の 2 つのプロセスがあり、自動化ツールを実行する場合にこれら 2 つのプロセスが実行されているかどうかを確認したいと考えています。grepそのためには、これら2つのプロセスが実行されているかどうかを確認する必要があります.2つのプロセスが実行されているかどうかのみを確認したいのですが、引数に含まれていると言うのは正しいですgrep。チェックのようなことはできます$? == 0が、両方のプロセスでそれを行うにはどうすればよいですか?

4

2 に答える 2

1

この[コマンドは、かなり制限された値のリストを想定しています。あなたのコマンドの出力は多くのデータを生成する可能性があり、それは期待されるようなものでps -efはありません。[ value1 = value2 ][

あなたは試すことができます:

if [ "$(ps -ef | grep date)" ] && [ "$(ps -ef | grep time)" ]
then echo "success"
else exit 1
fi

dateこれは、少なくとも 1 つのコマンド参照と少なくとも 1 つのコマンド参照がある場合に成功を報告しますtime(grepコマンドにはその引数が含まれているため、常に成功するはずです)。単一の引数の場合、二重引用符で囲まれているため、[コマンドは引数が空の文字列かどうかをチェックします (そうでない場合は成功)。

あなたは本当に何をしようとしていますか?

于 2013-04-03T19:24:58.747 に答える