สำเนาของแพร่กระจายสภาพแวดล้อมในการย่อยเปลือกหอยเพื่อให้งานนี้:
$ export MY_VAR=200
$ bash
$ echo $MY_VAR
200
แต่เนื่องจากเป็นสำเนาคุณจึงไม่สามารถรับค่านั้นได้สูงสุดถึง parent shell - ไม่ใช่โดยการเปลี่ยนสภาพแวดล้อมอย่างน้อยที่สุด
ดูเหมือนว่าคุณต้องการที่จะก้าวไปอีกขั้นซึ่งจะทำให้บางสิ่งบางอย่างที่ทำหน้าที่เหมือนตัวแปรทั่วโลกใช้ร่วมกันโดยเชลล์ "sibling" ที่เริ่มต้นแยกจากผู้ปกครองเช่นแท็บใหม่ใน Gnome Terminal
ส่วนใหญ่คำตอบคือ "คุณทำไม่ได้เพราะตัวแปรสภาพแวดล้อมใช้ไม่ได้" อย่างไรก็ตามมีคำตอบอีกข้อหนึ่งซึ่งก็คือคุณสามารถแฮ็กข้อมูลได้เสมอ วิธีหนึ่งคือการเขียนค่าของตัวแปรไปยังไฟล์เช่น~/.myvar
จากนั้นรวมสิ่งนั้นเข้า~/.bashrc
ด้วยกัน จากนั้นแต่ละเชลล์ใหม่จะเริ่มต้นด้วยค่าที่อ่านจากไฟล์นั้น
คุณสามารถไปอีกขั้น - ทำ~/.myvar
ในรูปแบบMYVAR=200
แล้วกำหนดPROMPT_COMMAND=source ~/.myvar
ซึ่งจะทำให้ค่าที่จะอ่านอีกครั้งทุกครั้งที่คุณได้รับพรอมต์ใหม่ ก็ยังคงไม่ได้ค่อนข้างตัวแปรส่วนกลางที่ใช้ร่วมกัน แต่มันก็เริ่มที่จะกระทำเช่นนั้น มันจะไม่เปิดใช้งานจนกว่าจะมีข้อความแจ้งกลับมาซึ่งขึ้นอยู่กับสิ่งที่คุณพยายามทำอาจเป็นข้อ จำกัด ที่ร้ายแรง
และแล้วแน่นอนสิ่งต่อไปคือการให้โดยอัตโนมัติเขียน~/.myvar
การเปลี่ยนแปลง นั่นทำให้ซับซ้อนขึ้นเล็กน้อยและฉันจะหยุดที่จุดนี้เพราะจริง ๆ แล้วตัวแปรสภาพแวดล้อมไม่ได้หมายถึงเป็นกลไกการสื่อสารระหว่างเชลล์และดีกว่าที่จะหาวิธีอื่นทำ