Tôi có một tập lệnh trông giống như sau:
export foo=/tmp/foo
export bar=/tmp/bar
Mỗi khi tôi xây dựng, tôi chạy 'source init_env' (trong đó init_env là tập lệnh ở trên) để thiết lập một số biến.
Để hoàn thành điều tương tự trong Python, tôi đã chạy mã này,
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)
Nhưng sau đó ai đó quyết định sẽ rất tuyệt nếu thêm một dòng như sau vào init_env
tệp:
export PATH="/foo/bar:/bar/foo:$PATH"
Rõ ràng là tập lệnh Python của tôi đã bị hỏng. Tôi có thể sửa đổi tập lệnh Python để xử lý dòng này, nhưng sau đó nó sẽ chỉ bị hỏng sau khi ai đó đưa ra một tính năng mới để sử dụng trong init_env
tệp.
Câu hỏi là nếu có một cách dễ dàng để chạy một lệnh Bash và để nó sửa đổi lệnh của tôi os.environ
?