Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

วิธีส่งออกตัวแปรสภาพแวดล้อมในสคริปต์ Bash

บทช่วยสอนนี้จะแสดงวิธีตั้งค่าตัวแปรสภาพแวดล้อมในสคริปต์ 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