หากต้องการส่งออกกฎมากกว่าหนึ่งกฎ แต่เฉพาะกฎที่มีชื่ออยู่ในรายการ ฉันจะใช้รหัสต่อไปนี้
#!/usr/bin/bash
# รายการชื่อรายการที่จะส่งออก
รายการ = (รายการ 1 รายการ 2 รายการ 3)
สำหรับรายการใน "${items[@]}"; ทำ
drush กฎ-ส่งออก "$item" > "${item}.txt"
เสร็จแล้ว
ซึ่งง่ายกว่าการรับรายการกฎที่มีอยู่ รายการกฎ drush --pipe
ให้ลบรายการในรายการที่ไม่ตรงกับชื่อกฎที่คุณต้องการส่งออก แล้วเรียกใช้ drush กฎการส่งออก
ในรายการด้านซ้าย
หากคุณมีรายชื่อซึ่งอาจเป็นชื่อคอมโพเนนต์หรือชื่อกฎ และคุณต้องการส่งออกเฉพาะกฎ โค้ดจะคล้ายกับรายการต่อไปนี้
#!/usr/bin/bash
# รายการของรายการที่จะส่งออก ซึ่งอาจรวมถึงชื่อส่วนประกอบ
ชื่อ = (ชื่อ 1 ชื่อ 2 ชื่อ 3)
# รับรายชื่อกฎเท่านั้น และแปลงเป็นอาร์เรย์
กฎ=( $(รายการกฎ drush --pipe --type=rule) )
# สร้างอาร์เรย์ด้วยรายการที่อยู่ในทั้งสองอาร์เรย์
ส่งออก=( $(comm -12 <(printf '%s\n' "${names[@]}" | LC_ALL=C sort) <(printf '%s\n' "${rules[@]}" | LC_ALL=C เรียงลำดับ)) )
# ส่งออกรายการที่มีชื่ออยู่ในอาร์เรย์การส่งออกซึ่งมีเฉพาะชื่อกฎเท่านั้น
สำหรับการส่งออกใน "${exports[@]}"; ทำ
drush กฎส่งออก "$export" > "${export}.txt"
เสร็จแล้ว