GNU/Linux >> Belajar Linux >  >> Linux

Mengatur variabel lingkungan Linux

Ini adalah kutipan dari halaman manual Bash:

ekspor [-fn] [nama[=kata]] ...
ekspor -p
Nama yang disediakan ditandai untuk ekspor otomatis ke lingkungan perintah yang dijalankan selanjutnya. Jika opsi -f diberikan, nama mengacu pada fungsi...

Jika Anda hanya membutuhkan variabel di lingkungan saat ini, Anda tidak perlu menggunakan ekspor.

var=value

Edit:

Tanpa ekspor:hanya lingkungan saat ini. Dengan ekspor:lingkungan saat ini dan lingkungan anak.

Berikut demonstrasi pengaruh ekspor terhadap ketersediaan variabel di lingkungan anak dan bahwa perubahan di lingkungan anak tidak memengaruhi lingkungan induk:

$ var1=123
$ export var2=456
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []
$ var3=789 bash -c 'echo "child [$var1] [$var2] [$var3]"; var1=111; var2=222; var3=333; echo "child [$var1] [$var2] [$var3]"'
child [] [456] [789]
child [111] [222] [333]
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []

Setelah gema pertama (echo "parent..." ) Anda melihat "123" dan "456" karena keduanya var1 dan var2 aktif di lingkungan saat ini. Anda tidak melihat nilai untuk var3 karena belum disetel.

Setelah baris yang dimulai "var3=... " Anda tidak melihat nilai untuk var1 karena tidak diekspor. Anda lakukan lihat nilai untuk var2 karena itu dulu diekspor. Anda melihat nilai untuk var3 karena disetel hanya untuk lingkungan anak .

(bash -c setara dengan menjalankan skrip dengan isi argumen ke -c pilihan. Skrip atau yang dapat dieksekusi lainnya atau, dalam hal ini, argumen untuk bash -c menjadi anak dari lingkungan saat ini yang, sebagai hasilnya, tentu saja, adalah orang tua dari anak tersebut.)

Dalam "skrip" nilai variabel diubah. Sekarang menampilkan nilai-nilai baru tersebut.

Setelah "skrip" selesai, eksekusi kembali ke lingkungan induk (baris perintah dalam kasus ini). Setelah gema terakhir, Anda akan melihat nilai asli karena perubahan yang dibuat di lingkungan anak tidak memengaruhi induk.


Anda mengatakan itu

Saya selalu menggunakan perintah ekspor untuk mengatur variabel lingkungan

Ngomong-ngomong, Anda mengatakannya, sepertinya Anda benar-benar mencoba bertanya bagaimana Anda membuat variabel lingkungan tetap ada. Untuk melakukannya, Anda harus meletakkan export VAR="foo" Anda pernyataan dalam file $HOME/.bash_profile Anda (jika Anda menggunakan bash). Jika Anda ingin variabel lingkungan tersebut bertahan untuk semua pengguna kecuali root, tambahkan ke /etc/profile. Jika Anda ingin menambahkannya untuk pengguna root juga, atur di /root/.bash_profile .

Ini akan berfungsi untuk semua shell login di mana bash adalah shell pilihan. Untuk shell non-login, Anda perlu menggunakan .bashrc. Saya tidak memiliki wawasan untuk ditawarkan untuk cangkang lain :D


Linux
  1. Mengatur Variabel Lingkungan Shell | Kulit BASH

  2. Variabel Lingkungan Pengguna Dengan "su" dan "sudo" di Linux

  3. Linux Mint - menambahkan variabel lingkungan secara permanen

  1. Cara Mengatur/Membuat Variabel Lingkungan dan Shell di Linux

  2. Linux – Apakah Variabel Lingkungan Terlihat oleh Pengguna yang Tidak Memiliki Hak Di Linux?

  3. Perintah ekspor Linux

  1. Cara Mengatur, Mendaftar, dan Menghapus Variabel Lingkungan di Linux

  2. Cara mengatur variabel lingkungan Linux dengan Ansible

  3. Apakah variabel lingkungan terlihat oleh pengguna yang tidak memiliki hak di Linux?