一部のスクリプトがエクスポートしたシステム変数を使用するのはなぜですか? [コピー]

一部のスクリプトがエクスポートしたシステム変数を使用するのはなぜですか? [コピー]

私はUbuntuに関する多くのオンラインチュートリアルを見てきました。

たとえば、

export JAVA_HOME=/usr/local/java/jdk1.8.0_05
export CATALINA_HOME=/ubuntuland/utils/apache-tomcat-8.0.8

バラよりこのチュートリアル

私は論理を理解しようとしています。なぜなら、彼らが自分のものを定義するのではなく、システム変数を使うというのは私にとっては理解できるからです。

編集する

作成時: echo $JAVA_HOMEシェルでは、サーバーのいつでも(再起動後)、すべてのシェルで正しいコンテンツを表示できます。

ベストアンサー1

時には、何かを実行するためにバージョンを使用する必要があります。あなたの場合、これはTomcatサーバーを駆動するJavaバージョンになります。グローバルJavaバージョンは時間の経過とともに変更される可能性があり、バグや非互換性によってTomcatサーバーがクラッシュする可能性があります。したがって、独自のTomcatを定義することで、以前にテストさJAVA_HOMEれた信頼できるJavaバージョンでTomcatが起動していることを確認できます。もう1つのポイントは、複数のインスタンスが実行中であり、異なるインスタンスに対して異なるインスタンスを指定する必要があることですCATALINA_HOME

私の考えに最適なアプローチは、システム全体の構成によって時間の経過とともに変化したり存在しない可能性がある変数に依存するのではなく、変数を明示的に定義することです。また、問題を解決し、どのパスとバイナリが使用されているかを確認するのも簡単です。

おすすめ記事