คำสั่งส่งออก UNIX [ปิด]


158

ฉันพยายามเข้าใจการใช้exportคำสั่ง

ฉันพยายามใช้man exportแต่ไม่มีคู่มือสำหรับคำสั่งนี้

ใครช่วยกรุณาทำความเข้าใจเกี่ยวกับการใช้exportใน UNIX?


มันแปลกมากที่ไม่มีหน้าคนสำหรับมัน ฉันไม่เห็นอย่างใดอย่างหนึ่ง
Pinocchio

คำตอบ:


226

เมื่อคุณรันโปรแกรมโปรแกรมลูกจะสืบทอดตัวแปรสภาพแวดล้อมจากแม่ ตัวอย่างเช่นหาก$HOMEตั้งค่าเป็น/rootในพาเรนต์$HOMEตัวแปรของเด็กจะถูกตั้งเป็น/rootเช่นกัน

ใช้กับตัวแปรสภาพแวดล้อมที่ทำเครื่องหมายเพื่อส่งออกเท่านั้น หากคุณตั้งค่าตัวแปรที่บรรทัดคำสั่งเช่น

$ FOO="bar"

ตัวแปรนั้นจะไม่สามารถมองเห็นได้ในกระบวนการลูก ไม่เว้นแต่คุณจะส่งออก:

$ export FOO

คุณสามารถรวมสองคำสั่งนี้เป็นหนึ่งเดียวในทุบตี (แต่ไม่รวมอยู่ในโรงเรียนเก่า):

$ export FOO="bar"

นี่คือตัวอย่างด่วนที่แสดงความแตกต่างระหว่างตัวแปรที่ส่งออกและตัวแปรที่ไม่ได้ส่งออก เพื่อให้เข้าใจสิ่งที่เกิดขึ้นรู้ว่าsh -cสร้าง child shell process ซึ่งสืบทอดสภาพแวดล้อมของ parent shell

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

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

หมายเหตุ:help exportหากต้องการได้รับความช่วยเหลือในเปลือกในตัวคำสั่งใช้ เชลล์ตัว -ins มีคำสั่งที่เป็นส่วนหนึ่งของเปลือกของคุณมากกว่า executables /bin/lsอิสระเช่น


16

ยูนิกซ์

คำสั่ง env, set และ printenv แสดงตัวแปรสภาพแวดล้อมทั้งหมดและค่าของตัวแปรเหล่านั้น env และ set ยังใช้เพื่อตั้งค่าตัวแปรสภาพแวดล้อมและมักจะรวมอยู่ในเชลล์โดยตรง printenv ยังสามารถใช้เพื่อพิมพ์ตัวแปรเดียวโดยให้ชื่อตัวแปรนั้นเป็นอาร์กิวเมนต์เพียงอย่างเดียวกับคำสั่ง

ใน Unix คำสั่งต่อไปนี้ยังสามารถใช้ได้ แต่มักขึ้นอยู่กับเชลล์ที่แน่นอน

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

คุณสามารถมีลักษณะที่นี้ที่


4
ยินดีต้อนรับสู่ StackOverflow โปรดทราบว่าเชลล์ Bourne แบบคลาสสิกต้องการ: VARIABLE=value; export VARIABLEแทนที่จะกำหนดและส่งออกพร้อมกัน setคำสั่งใน C เชลล์สำหรับตัวแปรเปลือกมากกว่าตัวแปรสภาพแวดล้อม; เป็นคู่ของsetenv คำสั่งในเปลือกหอยบอร์นที่ได้มาจากการพิมพ์ตัวแปรทั้งหมดไม่ได้ส่งออก (สภาพแวดล้อม) ตัวแปรเพียง อย่างน้อยในอดีตคำสั่งจะแยกออกจากเชลล์ (ไม่ใช่แบบบิวด์อิน) แม้ว่าจะสามารถสร้างเป็นบิวด์อินได้อย่างง่ายดาย มันตั้งค่าสภาพแวดล้อมสำหรับคำสั่งเฉพาะไม่ใช่เปลือกที่รัน exportsetenv
Jonathan Leffler

4

exportเป็นตัวในคำสั่งของbashเชลล์และอื่น ๆสายพันธุ์บอร์นเชลล์ มันถูกใช้เพื่อทำเครื่องหมายตัวแปรเชลล์เพื่อส่งออกไปยังกระบวนการลูก


0

exportใช้ในการตั้งค่าตัวแปรสภาพแวดล้อม ตัวอย่างเช่น:

export EDITOR=pico

จะตั้งค่าตัวแก้ไขข้อความเริ่มต้นของคุณให้เป็นpicoคำสั่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.