Bash:
การทำงานกับ YAML

วิธีการ:

การทำงานโดยตรงกับ YAML ใน Bash ต้องใช้ความคิดสร้างสรรค์เล็กน้อยเนื่องจาก Bash ไม่มีการสนับสนุนการแยกวิเคราะห์ YAML ด้วยตัวเอง อย่างไรก็ตาม คุณสามารถใช้เครื่องมือภายนอกเช่น yq (เครื่องมือไล่ระดับคอมมานด์ไลน์ YAML ที่เบาและพกพาได้) เพื่อโต้ตอบกับไฟล์ YAML ได้อย่างมีประสิทธิภาพ มาดูการทำงานบางอย่างที่พบบ่อย:

การติดตั้ง yq:

ก่อนที่จะลงไปในตัวอย่าง ตรวจสอบให้แน่ใจว่าคุณมี yq ติดตั้งแล้ว คุณสามารถติดตั้งได้โดยปกติจากตัวจัดการแพ็คเกจของคุณ เช่น บน Ubuntu:

sudo apt-get install yq

หรือคุณสามารถดาวน์โหลดโดยตรงจากที่เก็บ GitHub ของมันได้

การอ่านค่า:

พิจารณาว่าคุณมีไฟล์ที่ชื่อว่า config.yaml ด้วยเนื้อหาต่อไปนี้:

database:
  host: localhost
  port: 5432
user:
  name: admin
  password: secret

เพื่ออ่านโฮสต์ฐานข้อมูล คุณสามารถใช้ yq ดังนี้:

yq e '.database.host' config.yaml

ผลลัพธ์ตัวอย่าง:

localhost

ปรับปรุงค่า:

เพื่อปรับปรุงชื่อผู้ใช้ใน config.yaml ใช้คำสั่ง yq eval พร้อมตัวเลือก -i (แก้ไขที่ทำเล):

yq e '.user.name = "newadmin"' -i config.yaml

ตรวจสอบการเปลี่ยนแปลงด้วย:

yq e '.user.name' config.yaml

ผลลัพธ์ตัวอย่าง:

newadmin

เพิ่มองค์ประกอบใหม่:

เพื่อเพิ่มองค์ประกอบใหม่ใต้ส่วนฐานข้อมูล อย่างเช่น ฟิลด์ใหม่ timeout:

yq e '.database.timeout = 30' -i config.yaml

การตรวจสอบเนื้อหาของไฟล์จะยืนยันการเพิ่มเข้ามา

ลบองค์ประกอบ:

เพื่อลบรหัสผ่านภายใต้ผู้ใช้:

yq e 'del(.user.password)' -i config.yaml

การทำงานนี้จะลบฟิลด์รหัสผ่านออกจากการกําหนดค่า

จำไว้ว่า yq เป็นเครื่องมือที่ทรงพลังและมีความสามารถมากมาย รวมถึงการแปลง YAML เป็น JSON การผสานไฟล์ และการจัดการที่ซับซ้อนยิ่งขึ้นอีกมากมาย อ้างอิงเอกสาร yq เพื่อการสำรวจเพิ่มเติม