5
การเชื่อมโยงอาเรย์ของ BASH
มีวิธีพิมพ์อาร์เรย์ทั้งหมด ([คีย์] = ค่า) โดยไม่วนรอบองค์ประกอบทั้งหมดหรือไม่ สมมติว่าฉันได้สร้างอาร์เรย์ที่มีองค์ประกอบบางอย่าง: declare -A array array=([a1]=1 [a2]=2 ... [b1]=bbb ... [f500]=abcdef) ฉันสามารถพิมพ์อาเรย์ทั้งหมดด้วย for i in "${!array[@]}" do echo "${i}=${array[$i]}" done อย่างไรก็ตามดูเหมือนว่าทุบตีรู้วิธีการรับองค์ประกอบอาร์เรย์ทั้งหมดใน "ไป" - คีย์ทั้งสอง ${!array[@]}${array[@]}และค่านิยม มีวิธีในการทุบตีพิมพ์ข้อมูลนี้โดยไม่วนซ้ำหรือไม่? แก้ไข: typeset -p arrayทำอย่างนั้น! อย่างไรก็ตามฉันไม่สามารถลบทั้งคำนำหน้าและคำต่อท้ายในการทดแทนเดียว: a="$(typeset -p array)" b="${a##*(}" c="${b%% )*}" มีวิธีที่สะอาดกว่าในการรับ / พิมพ์เฉพาะส่วน key = value ของเอาต์พุตหรือไม่?