ฉันมีสคริปต์ที่มีลักษณะดังนี้:
export foo=/tmp/foo
export bar=/tmp/bar
ทุกครั้งที่สร้างฉันจะเรียกใช้ 'source init_env' (โดยที่ init_env เป็นสคริปต์ด้านบน) เพื่อตั้งค่าตัวแปรบางตัว
เพื่อให้บรรลุสิ่งเดียวกันใน Python ฉันมีรหัสนี้ทำงานอยู่
reg = re.compile('export (?P<name>\w+)(\=(?P<value>.+))*')
for line in open(file):
m = reg.match(line)
if m:
name = m.group('name')
value = ''
if m.group('value'):
value = m.group('value')
os.putenv(name, value)
แต่แล้วมีคนตัดสินใจว่าจะเป็นการดีที่จะเพิ่มบรรทัดต่อไปนี้ลงในinit_env
ไฟล์:
export PATH="/foo/bar:/bar/foo:$PATH"
เห็นได้ชัดว่าสคริปต์ Python ของฉันพังทลาย ฉันสามารถแก้ไขสคริปต์ Python เพื่อจัดการกับบรรทัดนี้ แต่มันจะพังในภายหลังเมื่อมีคนมาพร้อมกับคุณสมบัติใหม่ที่จะใช้ในinit_env
ไฟล์
คำถามคือถ้ามีวิธีง่ายๆในการรันคำสั่ง Bash และปล่อยให้มันแก้ไข my os.environ
?