GNU/Linux >> Linux の 問題 >  >> Ubuntu

* in * / etc / environment?で環境変数を参照する

最近、/etc/environmentを発見しました 、これはスクリプトよりも単純な環境変数を設定するためのより標準的な方法のようですが、/ etc/environmentファイルで環境変数を逆参照する方法があるかどうか疑問に思いました。

つまり、私はこれを持っています:

JAVA_HOME="/tools/java"
GRAILS_HOME="/tools/grails"
GROOVY_HOME="/tools/groovy"
GRADLE_HOME="/tools/gradle"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

$JAVA_HOME/binを追加しようとすると ただし、PATH定義に対しては、補間された変数ではなく、$ JAVA_HOME/binを取得します。これを修正するために、profile.dにenvironment.shを作成して、/binを追加します。 パスへのエントリですが、これはずさんでまとまりがないようです。

/ etc / environmentの環境変数を逆参照する方法はありますか?

ベストアンサー

/etc/environment ファイルはpam_envによって読み取られます PAMモジュール。単純なキーと値のペアのみをサポートし、右側に置換はありません。

置換または他のシェル拡張を使用して値を構築する場合は、シェルを通過する必要があります。 /etc/profile (または/etc/profile.d内のファイル )はこれらに適した場所です。これは伝統的な場所です(/etc/environment UNIXシステムの歴史の中で、比較的最近の革新であり、それを使用することについては確かにだらしのないものは何もありません。 /etc/environmentの主な利点 これにより、シェルを使用しないログイン方法や、Bourne以外のシェルを使用するユーザーでも環境変数を設定できますが、実際には一般的ではありません。


Ubuntu
  1. / etc / motdはどのように更新されますか?

  2. 環境変数をDockerコンテナに渡す方法

  3. 環境変数の確認

  1. シェル環境変数の設定| BASHシェル

  2. 一時的な環境を設定する ($PATH)

  3. 多くの環境変数の設定を解除する方法

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. / etc /environmentのEnvVarsはグローバルに表示されませんか?

  3. Linux 環境変数の設定