Fish Shell:
การทำงานกับ YAML
วิธีการ:
Fish Shell ไม่มีการสนับสนุนการแยกวิเคราะห์ YAML อย่างในตัว, แต่คุณสามารถใช้เครื่องมือของบุคคลที่สามเช่น yq
(โปรเซสเซอร์คอมมานด์ไลน์ YAML ที่เบาและพกพาได้) เพื่อจัดการข้อมูล YAML
การติดตั้ง yq (หากยังไม่ได้ติดตั้ง):
sudo apt-get install yq
การอ่านค่าจากไฟล์ YAML:
สมมติคุณมีไฟล์ YAML config.yaml
ที่มีเนื้อหาดังต่อไปนี้:
database:
host: localhost
port: 3306
เพื่ออ่าน host ของฐานข้อมูล, คุณจะใช้:
set host (yq e '.database.host' config.yaml)
echo $host
ตัวอย่างผลลัพธ์:
localhost
การอัพเดทค่าในไฟล์ YAML:
เพื่ออัพเดท port
เป็น 5432
, ใช้:
yq e '.database.port = 5432' -i config.yaml
ตรวจสอบการอัพเดท:
yq e '.database.port' config.yaml
ตัวอย่างผลลัพธ์:
5432
การเขียนไฟล์ YAML ใหม่:
สำหรับสร้างไฟล์ new_config.yaml
ใหม่พร้อมเนื้อหาที่กำหนดไว้ล่วงหน้า:
echo "webserver:
host: '127.0.0.1'
port: 8080" | yq e -P - > new_config.yaml
นี่ใช้ yq
เพื่อประมวลผลและพิมพ์อย่างสวยงาม (-P flag) สตริงเข้าไปในไฟล์ YAML ใหม่
การแยกวิเคราะห์โครงสร้างที่ซับซ้อน: หากคุณมีไฟล์ YAML ที่ซับซ้อนกว่าและต้องการเรียกข้อมูลอาร์เรย์หรืออ็อบเจกต์ที่ซ้อนกัน, คุณสามารถ:
echo "servers:
- name: server1
ip: 192.168.1.101
- name: server2
ip: 192.168.1.102" > servers.yaml
yq e '.servers[].name' servers.yaml
ตัวอย่างผลลัพธ์:
server1
server2
โดยใช้ yq
, Fish Shell ทำให้ง่ายต่อการนำทางผ่านเอกสาร YAML และจัดการกับมันสำหรับงานอัตโนมัติและการกำหนดค่าที่หลากหลาย