export VARIABLE_NAME='some value'
เป็นวิธีที่จะตั้งค่าตัวแปรสภาพแวดล้อมในเปลือก POSIX สอดคล้องใด ๆ ( sh
, dash
, bash
, ksh
ฯลฯ .; ยัง zsh) หากตัวแปรมีค่าอยู่แล้วคุณสามารถใช้export VARIABLE_NAME
เพื่อทำให้เป็นตัวแปรสภาพแวดล้อมโดยไม่ต้องเปลี่ยนค่า
Pre-POSIX Bourne shellไม่รองรับสิ่งนี้ซึ่งเป็นสาเหตุที่คุณจะเห็นสคริปต์ที่หลีกเลี่ยงexport VARIABLE_NAME='some value'
และใช้งานVARIABLE_NAME='some value'; export VARIABLE_NAME
แทน แต่กระสุน Bourne pre-POSIX นั้นหายากมากในปัจจุบัน
setenv VARIABLE_NAME='some value'
เป็นไวยากรณ์ csh เพื่อตั้งค่าตัวแปรสภาพแวดล้อม setenv
ไม่มีอยู่ใน sh และ csh ไม่ค่อยถูกใช้อย่างมากในสคริปต์และผ่านการทุบตีสำหรับการใช้แบบโต้ตอบในช่วง 20 ปีที่ผ่านมา (และ zsh นานยิ่งขึ้น) ดังนั้นคุณสามารถลืมมันได้เว้นแต่คุณจะพบมัน
env
คำสั่งเป็นอย่างมากไม่ค่อยมีประโยชน์ยกเว้นในสาย shebang เมื่อเรียกใช้โดยไม่มีข้อโต้แย้งมันจะแสดงสภาพแวดล้อม แต่export
จะดีขึ้น (เรียงลำดับและมักจะยกมาให้แก้ความสัมพันธ์ขึ้นบรรทัดใหม่ในค่าจากบรรทัดใหม่ที่แยกค่า) เมื่อเรียกใช้ด้วยอาร์กิวเมนต์มันจะเรียกใช้คำสั่งที่มีตัวแปรสภาพแวดล้อมพิเศษ แต่คำสั่งเดียวกันโดยไม่มีการenv
ทำงาน ( VAR=value mycommand
ทำงานmycommand
ด้วยการVAR
ตั้งค่าเป็นvalue
เหมือนenv VAR=value mycommand
) เหตุผลenv
มีประโยชน์ในบรรทัด shebang คือมันทำการPATH
ค้นหาและมันจะไม่ทำสิ่งใดเมื่อเรียกด้วยชื่อคำสั่ง env
คำสั่งสามารถเป็นประโยชน์เพื่อเรียกใช้คำสั่งที่มีตัวแปรสภาพแวดล้อมเพียงไม่กี่กับ-i
หรือไม่มีพารามิเตอร์เพื่อแสดงสภาพแวดล้อมรวมถึงตัวแปรที่มีชื่อไม่ถูกต้องที่เชลล์ไม่ได้นำเข้า
VAR=asdf
จะอัพเดตสภาพแวดล้อมหากVAR
อยู่ในสภาพแวดล้อมแล้ว (สิ่งนี้ไม่เป็นความจริงในเชลล์ Bourne ดั้งเดิม)