Tôi muốn sử dụng một kịch bản lệnh shell mà tôi có thể gọi để thiết lập một số biến môi trường. Tuy nhiên, sau khi thực thi kịch bản, tôi không thấy biến môi trường sử dụng "printenv" trong bash.Thiết lập biến môi trường trong kịch bản lệnh shell không làm cho nó hiển thị đối với shell
Đây là kịch bản của tôi:
#!/bin/bash
echo "Hello!"
export MYVAR=boubou
echo "After setting MYVAR!"
Khi tôi làm "./test.sh", tôi thấy:
Hello!
After setting MYVAR!
Khi tôi làm "myVar printenv", tôi thấy không có gì.
Bạn có thể cho tôi biết tôi đang làm gì sai không?
Nó hoạt động, nhưng tại sao "test.sh bash" không đặt biến môi trường? Nếu bash thực hiện mỗi lệnh trong kịch bản như thể nó được gõ vào dấu nhắc, biến môi trường sẽ được thiết lập trong tiến trình hiện tại? – GDICommander
@GDICommander: Không. Khi bạn chạy 'bash test.sh', điều này tạo ra một quá trình' bash' mới thực hiện kịch bản ** và thoát **. – NPE
Ok, cảm ơn thông tin. Bây giờ, tôi hiểu các biến môi trường tốt hơn một chút. – GDICommander