2
นับจำนวนองค์ประกอบในอาร์เรย์ทุบตีที่ชื่อของอาร์เรย์เป็นแบบไดนามิก (เช่นเก็บไว้ในตัวแปร)
คำชี้แจงสั้น ๆ ของคำถาม: มีวิธีการทุบตีในตัวเพื่อนับจำนวนขององค์ประกอบในอาร์เรย์ทุบตีที่ชื่อของอาร์เรย์เป็นแบบไดนามิก (เช่นเก็บไว้ในตัวแปร) โดยไม่ต้องหันไปทำสำเนาอย่างเต็มที่ของอาร์เรย์หรือใช้eval? ข้อมูลมากกว่านี้: การใช้การแทนที่พารามิเตอร์ bash สามารถทำได้ดังนี้: myArr=(A B C); echo ${#myArr[@]}กำหนดความยาวของอาร์เรย์: การอ้างอิงตัวแปรทางอ้อมโดยใช้ชื่อ: NAME=myVar; echo ${!NAME}(สิ่งนี้ยังใช้กับองค์ประกอบอาร์เรย์): NAME=myArr[1]; echo ${!NAME} แต่ถ้าชื่อของอาเรย์ถูกเก็บไว้ในตัวแปรอีกตัวหนึ่งจะกำหนดจำนวนขององค์ประกอบในอาเรย์ได้อย่างไร? (หนึ่งอาจพิจารณาว่าเป็นการรวมกันของการแทนที่พารามิเตอร์สองตัวด้านบน) ตัวอย่างเช่น: myArr=(A B C D) NAME=myArr # Get the number of elements in the array indirectly referenced by NAME. count=${#$NAME[@]} # This syntax is invalid. What …