บทช่วยสอนนี้จะแสดงวิธีตั้งค่าตัวแปรสภาพแวดล้อมในสคริปต์ Bash/Shell โดยใช้คีย์เวิร์ด export
โดยทั่วไป ตัวแปรที่ประกาศในสคริปต์ Bash/Shell จะมีอยู่แค่ภายในขอบเขตของสคริปต์ Bash/Shell ที่กำลังรันอยู่
เพื่อให้พวกมันพร้อมใช้งานที่อื่น พวกมันสามารถตั้งค่าเป็นตัวแปร สภาพแวดล้อม – หมายความว่าตัวแปรจะพร้อมใช้งานเมื่อรันคำสั่งนอกจากสคริปต์บนระบบของคุณ – ตัวอย่างเช่น ทำให้ตัวแปรพร้อมใช้งานจากบรรทัดคำสั่งหลังจากสคริปต์เสร็จสิ้น
คีย์เวิร์ด export ทำสิ่งนี้ – นี่คือวิธีใช้งาน
ตัวแปรสภาพแวดล้อมคืออะไร
ตัวแปรสภาพแวดล้อมทำงานคล้ายกับตัวแปรอื่นๆ แต่พร้อมใช้งานทุกที่ – ภายในสคริปต์ บนบรรทัดคำสั่ง และให้โปรแกรมอื่นๆ ที่กำลังรัน
ระบบของคุณมีตัวแปรสภาพแวดล้อมที่กำหนดไว้มากมายแล้ว – ตัวอย่างเช่น ไดเรกทอรีโฮมของคุณพร้อมใช้งานโดยการอ่านตัวแปรสภาพแวดล้อม $HOME
คุณสามารถดูตัวแปรสภาพแวดล้อมที่ตั้งค่าไว้ทั้งหมดด้วยคำสั่ง env:
env
ตั้งค่าตัวแปรสภาพแวดล้อมด้วย export
สคริปต์ต่อไปนี้ testScript.sh ตั้งค่าตัวแปรสภาพแวดล้อมและออก:
#!/bin/bash export MY_ENV_VAR="Save the environment!"
ตอนนี้ เมื่อสคริปต์ข้างต้นถูกรัน:
sh ./testScript.sh
ตัวแปร MY_ENV_VAR พร้อมใช้งานหลังจากเสร็จสิ้น สามารถยืนยันได้โดยรัน:
echo $MY_ENV_VAR
ตัวแปรสภาพแวดล้อมถูกตั้งค่าและพร้อมใช้งานทั่วระบบแล้ว
คำสั่ง printenv ยังสามารถใช้ดูตัวแปรสภาพแวดล้อมได้
printenv MY_ENV_VAR
ความต่อเนื่องหลังรีบูต
ตัวแปรสภาพแวดล้อมที่ตั้งค่าด้วย export จะไม่คงอยู่หลังการรีบูตคอมพิวเตอร์ เพื่อตั้งค่าตัวแปรสภาพแวดล้อมอย่างถาวร ต้องประกาศในไฟล์ ~/.bashrc ของคุณ
ไฟล์ ~/.bashrc เป็นสคริปต์ที่รันทุกครั้งที่คุณล็อกอิน ด้วยการเพิ่มคำสั่ง export ของคุณลงไป ตัวแปรสภาพแวดล้อมของคุณจะถูกเพิ่มเข้ามาสำหรับแต่ละเซสชันที่คุณล็อกอิน
nano ~/.bashrc
ข้างต้น ใช้โปรแกรมแก้ไขข้อความ nano เพื่อแก้ไขไฟล์ เพิ่มคำสั่ง export ของคุณไปที่ท้ายไฟล์ และจะอยู่เหล่านั้นหลังจากคุณรีบูต:
export MY_ENV_VAR="Save the environment!"
ตัวแปรสภาพแวดล้อมระดับระบบ
ตัวแปรสภาพแวดล้อมเหล่านี้จะมีอยู่สำหรับ ผู้ใช้ปัจจุบัน เท่านั้น หากคุณเป็นผู้ดูแลระบบและต้องการให้พร้อมใช้งานสำหรับผู้ใช้และกระบวนการทั้งหมด ให้เพิ่มบรรทัดเหล่านั้นลงในไฟล์ /etc/environment แทน:
sudo nano /etc/environment