GNU/Linux >> Belajar Linux >  >> Ubuntu

Referensi Variabel Lingkungan *di* /etc/environment?

Saya baru-baru ini menemukan /etc/environment , yang tampaknya merupakan cara yang lebih standar untuk menyiapkan variabel lingkungan sederhana daripada skrip, tetapi saya ingin tahu apakah ada cara untuk mereferensikan kembali variabel lingkungan di file /etc/environment.

Artinya, saya punya ini:

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"

Jika saya mencoba menambahkan $JAVA_HOME/bin untuk definisi PATH, bagaimanapun, saya mendapatkan $JAVA_HOME/bin, dan bukan variabel interpolasi. Untuk mengatasinya, saya membuat environment.sh di profile.d untuk menambahkan /bin entri ke jalur, tetapi ini tampaknya tidak rapi dan tidak teratur.

Apakah ada cara untuk mereferensikan variabel lingkungan di /etc/environment?

Jawaban Terbaik

/etc/environment file dibaca oleh pam_env modul PAM. Ini hanya mendukung pasangan nilai kunci sederhana, tanpa substitusi di sisi kanan.

Jika Anda ingin membangun nilai dengan substitusi atau ekspansi shell lainnya, Anda harus melalui shell. /etc/profile (atau file di /etc/profile.d ) adalah tempat yang tepat untuk ini. Ini adalah tempat tradisional (/etc/environment adalah inovasi yang relatif baru, dalam sejarah sistem unix), dan tentu saja tidak ada yang ceroboh dalam menggunakannya. Manfaat utama /etc/environment adalah memungkinkan variabel lingkungan disetel bahkan dengan metode login yang tidak melibatkan shell atau untuk pengguna yang menggunakan shell non-Bourne, tetapi ini tidak umum dalam praktiknya.


Ubuntu
  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Memeriksa variabel lingkungan

  3. Mengatur variabel lingkungan Linux

  1. Env Vars Di /etc/environment Tidak Terlihat Secara Global?

  2. Bagaimana /etc/motd Diperbarui?

  3. Bagaimana Melewati Variabel Lingkungan ke Docker Containers

  1. Mengatur Variabel Lingkungan Shell | Kulit BASH

  2. Tetapkan lingkungan sementara ($PATH)

  3. Betapa tidak disetelnya banyak variabel lingkungan