Lệnh xuất UNIX [đã đóng]


158

Tôi đang cố gắng để hiểu việc sử dụng exportlệnh.

Tôi đã thử sử dụng man export, nhưng không có hướng dẫn cho lệnh này.

Ai đó có thể giúp tôi hiểu về việc sử dụng exportUNIX không?


Thật kỳ lạ khi không có trang dành cho người đàn ông. Tôi cũng không thấy.
Pinocchio

Câu trả lời:


226

Khi bạn thực hiện một chương trình, chương trình con kế thừa các biến môi trường của nó từ cha mẹ. Chẳng hạn, nếu $HOMEđược đặt thành /rootcha mẹ thì biến con $HOMEcũng được đặt thành /root.

Điều này chỉ áp dụng cho biến môi trường được đánh dấu để xuất khẩu. Nếu bạn đặt một biến ở dòng lệnh như

$ FOO="bar"

Biến đó sẽ không hiển thị trong các tiến trình con. Không, trừ khi bạn xuất nó:

$ export FOO

Bạn có thể kết hợp hai câu lệnh này thành một câu duy nhất trong bash (nhưng không phải trong trường học cũ):

$ export FOO="bar"

Dưới đây là một ví dụ nhanh cho thấy sự khác biệt giữa các biến được xuất và không xuất. Để hiểu những gì đang xảy ra, hãy biết rằng sh -ctạo ra một quy trình shell con kế thừa môi trường của shell cha.

$ FOO=bar
$ sh -c 'echo $FOO'

$ export FOO
$ sh -c 'echo $FOO'
bar

Lưu ý: Để nhận trợ giúp về các lệnh tích hợp shell, hãy sử dụng help export. Shell dựng sẵn là các lệnh là một phần của trình bao của bạn chứ không phải là các tệp thực thi độc lập như /bin/ls.


16

Unix

Các lệnh env, set và printenv hiển thị tất cả các biến môi trường và giá trị của chúng. env và set cũng được sử dụng để đặt các biến môi trường và thường được tích hợp trực tiếp vào shell. printenv cũng có thể được sử dụng để in một biến bằng cách đặt tên biến đó làm đối số duy nhất cho lệnh.

Trong Unix, các lệnh sau cũng có thể được sử dụng, nhưng thường phụ thuộc vào một shell nhất định.

export VARIABLE=value  # for Bourne, bash, and related shells
setenv VARIABLE value  # for csh and related shells

Bạn có thể có một cái nhìn tại này tại


4
Chào mừng bạn đến với StackOverflow. Lưu ý rằng trình bao Bourne cổ điển sẽ yêu cầu: VARIABLE=value; export VARIABLEthay vì gán và xuất cùng một lúc. Các setlệnh trong C Shell là cho các biến shell hơn là biến môi trường; setenvlà đối tác của export. Các setlệnh trong vỏ Bourne có nguồn gốc từ in tất cả các biến, không chỉ xuất khẩu (môi trường) biến. Trong lịch sử ít nhất, envlệnh tách biệt với hệ vỏ (không phải là tích hợp sẵn), mặc dù nó có thể dễ dàng được tạo thành một tích hợp. Nó đặt môi trường cho một lệnh cụ thể, không phải shell chạy nó.
Jonathan Leffler


0

exportđược sử dụng để đặt các biến môi trường. Ví dụ:

export EDITOR=pico

Sẽ đặt trình soạn thảo văn bản mặc định của bạn thành picolệnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.