Masalah:
Selepas menetapkan pembolehubah persekitaran menggunakan " os" dalam program Go, ia kekal tidak boleh diakses dalam terminal semasa sesi.
Butiran:
Aturcara Go menetapkan pembolehubah persekitaran menggunakan os.Setenv("FOO", "BAR") membenarkan mencetak pembolehubah dalam atur cara menggunakan fmt.Println (os.Getenv("FOO")), tetapi pembolehubah kekal tidak hadir apabila disoal menggunakan echo $FOO dalam terminal sesi.
Jawapan:
Proses baharu mewarisi persekitaran proses induknya. Pengubahsuaian kepada persekitaran dalam proses kanak-kanak tidak menjejaskan persekitaran proses induk. Akibatnya, dalam senario yang diberikan, menetapkan pembolehubah persekitaran dalam program Go tidak mengubah persekitaran sesi terminal.
Penyelesaian:
Untuk menjadikan pembolehubah persekitaran berterusan dalam sesi terminal, anda perlu memulakan shell selepas mengubah suai persekitaran. Penyelesaian ini boleh dilaksanakan menggunakan pelbagai pendekatan, termasuk:
Dengan menggunakan salah satu pendekatan ini, anda boleh memastikan set pembolehubah persekitaran dalam program Go tersedia dalam sesi terminal.
Atas ialah kandungan terperinci Mengapa Pembolehubah Persekitaran Tidak Ditetapkan melalui Pakej `os` Go Berterusan dalam Sesi Terminal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!