Môi trường được hiển thị thông qua mảng toàn cầu env
trong Tcl. Các khóa và giá trị của mảng mặc định với môi trường thừa hưởng từ tiến trình cha, bất kỳ quá trình nào mà Tcl tạo sẽ kế thừa bản sao của nó và mã kiểm tra môi trường trong quy trình hiện tại (bao gồm trực tiếp từ C) sẽ thấy trạng thái hiện tại của nó.
Việc chọn môi trường được đặt trong tập lệnh shell khá phức tạp. Vấn đề là một .bashrc
(ví dụ) có thể làm những điều khá phức tạp cũng như thiết lập một loạt các biến môi trường. Ví dụ, nó cũng có thể in ra một tin nhắn trong ngày, hoặc có điều kiện hành động. Nhưng bạn ít nhất có thể làm cho một lý nỗ lực bằng cách sử dụng env
lệnh của shell:
set data [exec sh -c "source /path/to/file.sh.rc; env"]
# Now we parse with some regular expression magic
foreach {- key value} [regexp -all -inline {(?wi)^(\w+)=((?!')[^\n]+|'[^']+')$} $data] {
set extracted_env($key) [string trim $value "'"]
}
Nó khá khủng khiếp, và không phải là khá bên phải (có những điều mà có thể nhầm lẫn nó) nhưng nó khá gần . Các giá trị sẽ được điền trong mảng extracted_env
.
Tôi nghĩ mọi người dễ dàng định cấu hình mọi thứ thông qua tập lệnh Tcl…
Nguồn
2015-04-17 22:21:23
nếu tôi muốn đặt biến môi trường của chính quy trình con? Vì vậy, biến môi trường của tập lệnh tcl đang chạy – Attiq