最近、/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以外のシェルを使用するユーザーでも環境変数を設定できますが、実際には一般的ではありません。