Bagaimana cara menambahkan variabel lingkungan?

Saya menjalankan Ubuntu 11.04. Saya menggunakan terminal untuk memulai sesi bash, dan saya ingin menambahkan variabel lingkungan:

$r@hajt:~$ env THEVAR=/example

Tapi itu tidak bekerja. Ini menunjukkan semua variabel dengan THEVAR menjadi yang terakhir, tetapi panggilan lain untuk env tidak menunjukkan THEVAR lagi- env | grep THEVAR mengembalikan apa-apa.

Demikian pula, skrip dengan ekspor (export THEVAR=/example) atau tugas variabel lainnya (THEVAR=/example) jangan menambahkan variabel lingkungan.

Saya tahu saya melakukan sesuatu yang salah, saya tahu itu harus sesuatu yang sederhana, tetapi saya tidak dapat menemukan apa.

UPDATE:arti sebenarnya dari pertanyaan saya adalah yang satu ini: https://stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell

(Pokoknya saya akan memilih jawaban yang paling banyak dipilih dan meninggalkan judul yang diedit-bukan itu yang saya minta)

env menjalankan program di lingkungan yang dimodifikasi, lalu menolak semua perubahan.

Untuk mengatur variabel hanya untuk shell saat ini:

VARNAME="my value"

Untuk mengaturnya untuk shell saat ini dan semua proses dimulai dari shell saat ini:

export VARNAME="my value"      # shorter, less portable version

Untuk mengaturnya permanen untuk semua sesi bash masa depan menambahkan baris tersebut untuk Anda .bashrc file dalam Anda $HOME direktori.

Untuk mengaturnya secara permanen, dan sistem lebar (semua pengguna, Semua proses) tambahkan variabel set di/etc / environment:

sudo -H gedit /etc/environment

File ini hanya menerima tugas variabel seperti:

VARNAME="my value"

Jangan gunakan export kata kunci di sini.

Anda perlu keluar dari pengguna saat ini dan masuk lagi sehingga perubahan variabel lingkungan terjadi.

Untuk mengatur variabel lingkungan sekali, gunakan export perintah di prompt, bukan dalam skrip shell:

$ export THEVAR=/example

Variabel akan ditetapkan untuk sisa sesi shell atau sampai unset.

Untuk mengatur variabel lingkungan setiap kali, gunakan export perintah dalam .bashrc file (atau file inisialisasi yang sesuai untuk shell Anda).

Untuk mengatur variabel lingkungan dari skrip, gunakan export perintah dalam script, dan kemudian source naskahnya. Jika Anda menjalankan script itu tidak akan bekerja.

Untuk penjelasan tentang perbedaan antara sourcing dan executing lihat jawaban ini: https://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-script/176788#176788

Untuk menambahkan variabel lingkungan baru secara permanen di Ubuntu (diuji hanya di 14.04), gunakan langkah-langkah berikut:

  1. Buka terminal (dengan menekan CtrlAltT)
  2. sudo -H gedit /etc/environment
  3. Ketik kata sandi Anda
  4. Edit file teks yang baru saja dibuka:
    misalnya jika Anda ingin menambahkan FOO=bar, lalu tulis saja FOO=bar di baris baru
  5. Simpan
  6. Setelah disimpan, logout dan login lagi.
  7. Perubahan yang diperlukan Anda dibuat.

Agar perubahan lingkungan / var tetap ada setelah skrip selesai, Anda harus menggunakansource ./script.sh atau notasi singkat untuk sumber,".", seperti . ./script.sh

Sumber akan menjalankan perintah dalam skrip seolah-olah Anda telah mengetiknya... jadi itu mengubah beberapa aspek skrip, seperti keluar... jadi jika skrip Anda memeriksa sesuatu dan memutuskan untuk keluar jika salah, misalnya, melalui panggilan exit 0, ini akan mengakhiri sesi terminal / shell Anda saat ini.

Saya tahu ini cukup terlambat, tetapi jika Anda ingin menambahkan variabel lingkungan untuk semua pengguna (misalnya penggunaan JAVA) - Anda dapat melakukan hal berikut:

1) Buka /etc/bash.bashrc menggunakan nano (Anda dapat menggunakan editor apa pun, saya tidak suka VIM karena ini adalah yang terburuk dalam hal keramahan pengguna - tidak ada yang pribadi).

2) Tambahkan ke file:

export VAR=path export PATH=$PATH:/bin3) (lebih baik jika Anda dapat memantulkan kotak) - atau cukup buka sesi SSH baru dan Konfirmasi menggunakan perintah `env'.

Tetapi jika Anda ingin setiap pengguna memiliki pengaturan terpisah untuk ini, Anda harus membuat perubahan (skrip) ke .bashrc berkas di bawah ~/.bashrc (atau /home/$USER/ jika Anda baru mengenal sistem Linux)

Jika Anda melakukan hal-hal melalui script, salah satu cara mudah untuk mengatur variabel lingkungan secara permanen diletakkan di bawah pernyataan dalam script Anda,

if [[ ! -d "$MyVar" ]]; then     export MyVar="abc"    echo 'export MyVar="abc"' >> ~/.bashrcfi

Jika Anda perlu mengevaluasi ekspresi seperti pwd, Anda dapat menggunakan ini, misalnya,

echo "export EIGEN_ROOT=\"$(pwd)/eigen\"" >> ~/.bashrc

Jika Anda menggunakan Ubuntu atau sistem berbasis Unix kemudian ekspor variabel dalam ~/.bashrc file. Ini adalah file tersembunyi dan anda bisa sampai di sana melalui terminal atau dengan unhiding file tersembunyi dalam sistem file.

Kemudian mengedit file dan mengatur export THEVAR=/example di sana, Simpan dan selesai.

Jika Anda menggunakan aplikasi JAVA menggunakan TOMCAT Anda dapat mengatur variabel lingkungan dengan cara berikut:

1.sudo su dan cd ke / var / lib / tomcat8 / bin / (atau mana saja jalur bin tomcat Anda)

  1. sentuh setenv.sh (jika tidak ada), jika file yang ada sudah melakukan 'vi setenv.sh'

  2. chmod 777 setenv.sh (membuat file executable)

  3. vi setenv.sh dan mengatur baris berikut di setenv.kunci shexport = nilai

  4. sudo systemctl restart tomcat.layanan

Dalam file java Anda, Anda dapat menggunakan kode berikut untuk memeriksa apakah variabel diatur

private static void printEnv() {    System.out.println("******************************Environment Vars*****************************");    Map<String, String> enviorntmentVars = System.getenv();    enviorntmentVars.entrySet().forEach(System.out::println);    System.out.println("******************************system Vars*****************************");    Properties enviorntmentProperties = System.getProperties();    enviorntmentVars.entrySet().forEach(System.out::println);}

Yang lainnya adalah tentang variabel global, yang ini tidak menambahkan batasan seperti itu. Aku akan tetap terpisah.

https://help.ubuntu.com/community/EnvironmentVariables

Ketika didefinisikan / diekspor dalam .bashrc, ini berfungsi dengan baik.

Bagaimana dengan ‘Thevar = /example’?

kemungkinan duplikat [Variabel Lingkungan Google Earth dan $BROWSER] (Google Earth and $BROWSER environment variable - Ask Ubuntu)