Sebuah salinan dari merambat lingkungan untuk sub-kerang, sehingga karya ini:
$ export MY_VAR=200
$ bash
$ echo $MY_VAR
200
tetapi karena ini adalah salinan, Anda tidak bisa mendapatkan nilai itu hingga shell induk - setidaknya dengan mengubah lingkungan.
Sepertinya Anda benar-benar ingin melangkah lebih jauh, yaitu membuat sesuatu yang bertindak seperti variabel global, dibagikan oleh cangkang "saudara" yang diprakarsai secara terpisah dari induk - seperti tab baru Anda di Terminal Gnome.
Sebagian besar, jawabannya adalah "Anda tidak bisa, karena variabel lingkungan tidak berfungsi seperti itu". Namun, ada jawaban lain, yaitu, Anda selalu dapat meretas sesuatu. Salah satu pendekatan adalah menulis nilai variabel ke file, seperti ~/.myvar
, dan kemudian memasukkannya ke dalam ~/.bashrc
. Kemudian, setiap shell baru akan mulai dengan nilai yang dibaca dari file itu.
Anda bisa melangkah lebih jauh - membuat ~/.myvar
dalam format MYVAR=200
, dan kemudian mengatur PROMPT_COMMAND=source ~/.myvar
, yang akan menyebabkan nilai dibaca kembali setiap kali Anda mendapatkan prompt baru. Itu masih belum cukup variabel global bersama, tapi itu mulai bertindak seperti itu. Itu tidak akan aktif sampai muncul kembali, yang tergantung pada apa yang Anda coba lakukan bisa menjadi batasan yang serius.
Dan kemudian, tentu saja, hal berikutnya adalah menulis perubahan secara otomatis ~/.myvar
. Itu menjadi sedikit lebih rumit, dan saya akan berhenti pada titik ini, karena sungguh, variabel lingkungan tidak dimaksudkan sebagai mekanisme komunikasi antar-shell, dan lebih baik hanya mencari cara lain untuk melakukannya.