Tôi có một số cài đặt proxy mà thỉnh thoảng tôi chỉ muốn bật, vì vậy tôi không muốn đặt chúng trong số ~/.bash_profile
của mình. Tôi đã thử đặt chúng trực tiếp trong ~/bin/set_proxy_env.sh
, thêm ~/bin
vào PATH
và chmod +x
nhập tập lệnh nhưng mặc dù tập lệnh chạy, các biến không dính trong vỏ của tôi. Có ai biết làm thế nào để có được họ để dính xung quanh cho phần còn lại của phiên trình bao?Làm cách nào để đặt biến môi trường bash từ tập lệnh?
Trả lời
Sử dụng một trong số:
source <file>
. <file>
Trong kịch bản sử dụng
export varname=value
và cũng thực thi kịch bản với:
source set_proxy_env.sh
.
Từ khóa export
đảm bảo biến được đánh dấu để bao gồm tự động trong môi trường của các lệnh được thực hiện sau đó. Sử dụng source
để thực thi tập lệnh sẽ bắt đầu bằng trình bao hiện tại thay vì khởi chạy tập lệnh tạm thời cho tập lệnh.
tôi đã có 'export'; đó là 'nguồn' tôi đã mất tích. –
Bạn đã thử điều này:
. ~/bin/set_proxy_env.sh
Chạy nó bằng chính nó sẽ mở ra một subshell riêng biệt (tôi nghĩ) và thiết lập các biến đó. Nhưng sau đó các ràng buộc bị mất sau khi thoát trở lại vào vỏ của bạn. Dấu chấm ở phía trước bảo nó chạy nó trong cùng một hệ vỏ.
Ngoài ra, đừng quên export
các biến bạn cần như vậy: export MYVAR=value
Không cần phải xuất mọi biến số. Chỉ những cái bạn cần hiển thị cho các tiến trình con. –
Ah vâng, đó là ý của tôi :) –
rằng thưa bạn, là tiền trong ngân hàng – tofutim