2011-09-07 2 views
119

Tôi đang cố gắng hiểu việc sử dụng lệnh export.Lệnh xuất UNIX UNIX

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

Có ai vui lòng giúp tôi hiểu về việc sử dụng export trong UNIX không?

+0

điều kỳ lạ của nó là không có trang người đàn ông cho nó. Tôi cũng không thấy. – Pinocchio

Trả lời

177

Khi bạn thực hiện 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ẹ. Ví dụ: nếu $HOME được đặt thành /root trong phụ huynh thì biến số $HOME của trẻ cũ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. Nếu bạn đặt biến tại dòng lệnh như

$ FOO="bar" 

Biến đó sẽ không hiển thị trong quy 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 vào một duy nhất trong bash (nhưng không phải trong sh cũ-trường):

$ 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 -c tạo ra một quá trình shell con thừa hưởng môi trường của trình bao cha mẹ.

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

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

Lưu ý: Để được trợ giúp về vỏ lệnh built-in sử dụng help export. Shell được xây 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 thi hành độc lập như /bin/ls.

13

Unix

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 để thiết lập các biến môi trường và thường được kết hợp trực tiếp vào trình bao. printenv cũng có thể được sử dụng để in một biến duy nhất 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 trình bao nào đó.

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 this tại

+3

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; xuất VARIABLE' thay vì chỉ định và xuất cùng một lúc.Lệnh 'set' trong C Shell là cho các biến shell chứ không phải là các biến môi trường; 'setenv' là đối tác của' export'. Lệnh 'set' trong các shell xuất phát từ Bourne in tất cả các biến, không chỉ các biến được xuất (môi trường). Trong lịch sử ít nhất, lệnh 'env' tách biệt khỏi shell (không phải là một built-in), mặc dù nó có thể dễ dàng được tạo thành một built-in. Nó đặt môi trường cho một lệnh cụ thể, không phải trình bao chạy nó. –

1

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

export EDITOR=pico 

Sẽ đặt trình chỉnh sửa văn bản mặc định là pico.

2

export là lệnh tích hợp của bash shellBourne shell variants khác. Nó được sử dụng để đánh dấu một biến hệ vỏ để xuất ra các tiến trình con.