ในกล่อง Linux ของฉัน (เฉพาะ Gentoo Linux 2.6.31) ฉันสังเกตว่าตัวแปรสภาพแวดล้อม HOSTNAME นั้นมีอยู่ในเชลล์ แต่ไม่ได้อยู่ในสคริปต์ ตัวอย่างเช่น,
$ echo $HOSTNAME
ผลตอบแทน
xxxxxxxx.com,
แต่
$ ruby -e 'puts ENV["HOSTNAME"]'
ผลตอบแทน
nil
ในอีกทางหนึ่งตัวอย่างเช่นตัวแปรสภาพแวดล้อมของ USER นั้นมีทั้งในเชลล์และในสคริปต์
ฉันสังเกตเห็นว่า USER ปรากฏในรายการตัวแปรสภาพแวดล้อมที่ปรากฏขึ้นเมื่อฉันพิมพ์
export
กล่าวคือ
declare -x USER="infogrind"
แต่ HOSTNAME ไม่ ฉันสงสัยว่าปัญหานี้เกี่ยวข้องกับสิ่งนั้น
คำถามของฉัน: 1) ฉันจะทำให้ HOSTNAME พร้อมใช้งานในสคริปต์ได้อย่างไรและ 2) เพื่อความเข้าใจที่ดีขึ้นของฉันตัวแปรนี้ถูกตั้งค่าไว้ที่ใดในตอนแรกและทำไมจึงไม่ "ส่งออก"
gethostname()
เพราะสิ่งนี้