1

Apacheを自動的にインストールするスクリプトに取り組んでいます。
質問する前に、これは会社の要求です。それ以外の場合は、より簡単な方法で apache をインストールします。

ここで、apache configure/make/make install が正常に完了したかどうかをテストする必要があります。
構成オプションを確認しましたが、失敗した終了のフラグはありません。
コマンド出力の成功または失敗をテストする以外の方法があるかどうかを知りたいですか?

現在、出力をファイルに保存してから、予想される行を grep しています。たとえば、configure の「test/Makefile の作成」などです。

ありがとう

4

1 に答える 1

2

通常、*nix ベースのシステムでは、コマンドは成功した場合は 0 の値を返し、コマンドが失敗した場合はゼロ以外の値を返します。シェルでは、最後のコマンドの終了ステータスが「$?」に格納されます。変数。

したがって、make install を実行して、次のように終了ステータスを確認するとします。

# make install 
# echo $?

コマンドが成功した場合、echo ステートメントは 0 を出力します。それ以外の場合は、他の数値を取得します。または、$? 「もし」で。

if [ $? -eq 0 ]; then { 
    echo "OK" 
};else { 
    echo "Not Ok"
};fi

終了ステータスを別の方法で使用することもできます。次のコマンドラインは、前のコマンドが成功した場合にのみ、順番に各コマンドを実行します

./configure && make && make install && echo "All good!"

各コマンドは、値 (終了ステータス) を返す関数と考えてください。

&& は、bash (おそらく使用しているシェル) と || の AND 演算子です。OR 演算子です。

上記のコマンド ラインを拡張して、「make install」手順が失敗した場合も処理できます。次に例を示します。

./configure && make && make install && echo "All good!" || echo "Something's awry"

もちろん、これは一例ですが、コマンドの終了ステータスをテストできることを利用して、問題を解決できると思います。

このリンクが役に立ちます: http://tldp.org/LDP/abs/html/exit-status.html

于 2013-10-11T14:42:40.857 に答える