Trên hộp Linux của tôi (cụ thể là Gentoo Linux 2.6.31) Tôi đã nhận thấy rằng biến môi trường HOSTNAME có sẵn trong trình bao của tôi, nhưng không có trong các tập lệnh. Ví dụ,
$ echo $HOSTNAME
trả lại
xxxxxxxx.com,
nhưng
$ ruby -e 'puts ENV["HOSTNAME"]'
trả lại
nil
Mặt khác, biến môi trường USER, chẳng hạn, có sẵn cả trong trình bao và trong các tập lệnh.
Tôi đã nhận thấy rằng USER xuất hiện trong danh sách các biến môi trường xuất hiện khi tôi nhập
export
I E,
declare -x USER="infogrind"
nhưng HOSTNAME thì không. Tôi nghi ngờ vấn đề có liên quan đến điều đó.
Câu hỏi của tôi: 1) làm cách nào tôi có thể cung cấp HOSTNAME trong tập lệnh và 2) để tôi hiểu rõ hơn, biến này ban đầu được đặt ở đâu và tại sao nó không được "xuất khẩu"?
gethostname()
vì điều này.