วิธีใช้ Index Arrays ใน Bash

Withi Chi Index Arrays Ni Bash



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

อินเด็กซ์อาร์เรย์คืออะไร

อาร์เรย์ที่จัดทำดัชนีคือชุดขององค์ประกอบใน bash ที่สามารถเข้าถึงได้โดยใช้ดัชนีหรือคีย์ อาร์เรย์เหล่านี้สามารถใช้จัดเก็บและดึงข้อมูลตามลำดับเฉพาะ ทำให้ง่ายต่อการจัดการข้อมูลจำนวนมาก ไวยากรณ์สำหรับการประกาศอาร์เรย์ที่จัดทำดัชนีใน bash มีดังนี้:

< array_name > = ( องค์ประกอบ1 องค์ประกอบ2 องค์ประกอบ3 ... )

ที่นี่ array_name คือชื่อของอาร์เรย์ และ element1, element2, element3 และอื่นๆ คือค่าที่จะเก็บไว้ในอาร์เรย์ ค่าจะถูกคั่นด้วยช่องว่าง และโปรดทราบว่าคุณสามารถใช้คำสั่งประกาศเพื่อสร้างอาร์เรย์ได้







วิธีใช้อาร์เรย์ที่จัดทำดัชนีใน Bash

ในการสร้างอาร์เรย์ดัชนีใน bash คุณเพียงแค่ประกาศตัวแปรและกำหนดค่าในวงเล็บและคั่นด้วยช่องว่าง ต่อไปนี้คือตัวอย่างบางส่วนที่สาธิตวิธีใช้อาร์เรย์ที่จัดทำดัชนีใน bash:



การจัดลำดับรายการใหม่ใน Bash

หากคุณมีรายการสินค้าในลำดับหนึ่งๆ และต้องการเรียงลำดับใหม่ด้วยวิธีอื่น คุณสามารถใช้อาร์เรย์ดัชนีเพื่อสร้างคำสั่งซื้อใหม่สำหรับรายการดังต่อไปนี้:



#!/bin/bash
รายการ = ( 'มะม่วง' 'สัปปะรด' 'สตรอเบอร์รี่' 'เชอร์รี่' 'องุ่น' )
คำสั่ง = ( 4 2 0 3 1 )
สำหรับ ฉัน ใน ' ${คำสั่งซื้อ[@]} '
ทำ
เสียงสะท้อน ${items[$i]}
เสร็จแล้ว

ในตัวอย่างนี้ เราสร้างอาร์เรย์ชื่อไอเท็มที่มีองค์ประกอบ 5 รายการ นอกจากนี้ เรายังสร้างอาร์เรย์ดัชนีที่เรียกว่าคำสั่งซื้อ ซึ่งระบุคำสั่งซื้อใหม่สำหรับรายการ จากนั้นเราจะวนซ้ำอาร์เรย์ลำดับและใช้แต่ละค่าเป็นดัชนีเพื่อดึงรายการที่เกี่ยวข้องจากอาร์เรย์รายการและพิมพ์ออกมา





การกรองรายการใน Bash

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



#!/bin/bash
รายการ = ( 'มะม่วง' 'สัปปะรด' 'สตรอเบอร์รี่' 'เชอร์รี่' 'องุ่น' )
ดัชนี = ( )

สำหรับ ฉัน ใน ' ${!รายการ[@]} '
ทำ
ถ้า [ [ ${items[$i]} == * 'ร' * ] ]
แล้ว
ดัชนี+= ( $i )
เป็น
เสร็จแล้ว

สำหรับ ฉัน ใน ' ${ดัชนี[@]} '
ทำ
เสียงสะท้อน ${items[$i]}
เสร็จแล้ว

ในตัวอย่างนี้ เราสร้างอาร์เรย์ชื่อไอเท็มที่มีองค์ประกอบ 5 รายการ เรายังสร้างอาร์เรย์ดัชนีว่างที่เรียกว่าดัชนี จากนั้นเราจะวนซ้ำอาร์เรย์ของรายการและตรวจสอบว่าแต่ละรายการมีตัวอักษร 'r' หรือไม่ หากเป็นเช่นนั้น เราจะเพิ่มดัชนีลงในอาร์เรย์ดัชนี สุดท้าย เราจะวนซ้ำอาร์เรย์ดัชนีและใช้แต่ละค่าเป็นดัชนีเพื่อดึงข้อมูลรายการที่เกี่ยวข้องจากอาร์เรย์รายการและพิมพ์ออกมา

การนับเหตุการณ์ใน Bash

หากคุณมีรายการสินค้าและต้องการนับจำนวนครั้งที่เกิดขึ้นของแต่ละรายการ คุณสามารถใช้อาร์เรย์ดัชนีเพื่อติดตามการนับ และนี่คือตัวอย่างสำหรับการสาธิต:

#!/bin/bash
รายการ = ( 'มะม่วง' 'สัปปะรด' 'สตรอเบอร์รี่' 'เชอร์รี่' 'องุ่น' )
นับ = ( )

สำหรับ ฉัน ใน ' ${!รายการ[@]} '
ทำ
ถ้า [ [ ! ' ${นับ[@]} ' =~ ' ${items[$i]} ' ] ]
แล้ว
นับ+= ( ' ${items[$i]} 1' )
อื่น
ดัชนี =$ ( เสียงสะท้อน ' ${นับ[@]} ' | ' ' '\n' | จับ -น 'อรรถ ${items[$i]} ' | กับ )
นับ =$ ( เสียงสะท้อน ' ${นับ[$index-1]} ' | ตัด -d ' ' -f2 )
นับ [ $ดัชนี - 1 ] = ' ${items[$i]} $((นับ+1) )'
เป็น
เสร็จแล้ว

สำหรับ นับ ใน ' ${นับ[@]} '
ทำ
เสียงสะท้อน $ นับ
เสร็จแล้ว

ก่อนอื่นจะเริ่มต้นอาร์เรย์ที่เรียกว่า 'รายการ' ด้วยรายการสตริง จากนั้นจะประกาศอาร์เรย์ว่างที่เรียกว่า 'จำนวน' for loop ถูกสร้างขึ้นเพื่อวนซ้ำสำหรับแต่ละรายการในอาร์เรย์ 'items' และสำหรับแต่ละรายการ มันจะตรวจสอบว่ามีอยู่แล้วในอาร์เรย์ 'counts' หรือไม่

หากไม่มีอยู่ จะเพิ่มรายการและจำนวน 1 ในอาร์เรย์ 'นับ' หากมีอยู่ จะเพิ่มจำนวนของรายการนั้นในอาร์เรย์ 'จำนวน' สุดท้าย ในการพิมพ์แต่ละรายการและจำนวนที่สอดคล้องกันจะใช้อีกรายการหนึ่งสำหรับการวนซ้ำ ผลลัพธ์ของรหัสนี้จะพิมพ์จำนวนของแต่ละรายการในอาร์เรย์ 'รายการ' โดยนับรายการที่ซ้ำกันแยกกัน

การอัปเดตรายการใน Bash

หากคุณมีรายการของรายการและคุณต้องการเพิ่มหรือลบรายการจากนั้น คุณสามารถใช้อาร์เรย์ดัชนีสำหรับรายการนั้น และนี่คือตัวอย่างสำหรับการสาธิต:

#!/bin/bash
รายการ = ( 'มะม่วง' 'สัปปะรด' 'สตรอเบอร์รี่' 'เชอร์รี่' 'องุ่น' )

# การเพิ่มองค์ประกอบใหม่ให้กับอาร์เรย์ที่จัดทำดัชนีที่ดัชนี 2
รายการ [ 6 ] = 'ส้ม'
# การลบองค์ประกอบที่ดัชนี 2 จากอาร์เรย์ที่จัดทำดัชนี
ยกเลิกการตั้งค่า รายการ [ 2 ]

# การพิมพ์อาร์เรย์ที่อัปเดต
เสียงสะท้อน ' ${รายการ[@]} '

ในสคริปต์ อาร์เรย์ที่จัดทำดัชนี 'รายการ' ถูกกำหนดด้วยองค์ประกอบเริ่มต้นห้ารายการ หากต้องการเพิ่มองค์ประกอบใหม่ ค่าจะถูกกำหนดให้กับดัชนีที่ต้องการโดยใช้ไวยากรณ์ array[index]=value ในสคริปต์นี้ มีการเพิ่ม 'สีส้ม' ลงในดัชนี 6 ของอาร์เรย์ ในการลบองค์ประกอบ เราใช้คำสั่ง unset ตามด้วยดัชนีขององค์ประกอบที่เราต้องการลบ ในกรณีนี้ องค์ประกอบที่ดัชนี 2 (“สตรอเบอร์รี่”) จะถูกลบ จากนั้นพิมพ์อาร์เรย์ที่อัปเดตโดยใช้ไวยากรณ์ “${array[@]}” ซึ่งจะขยายอาร์เรย์ทั้งหมด

บทสรุป

อาร์เรย์ที่จัดทำดัชนีเป็นโครงสร้างที่มีประโยชน์ของ bash ที่ให้คุณจัดเก็บและจัดการค่าหลายค่าโดยใช้ตัวแปรเดียว เมื่อเข้าใจไวยากรณ์และการใช้อาร์เรย์ที่จัดทำดัชนีแล้ว คุณจะสามารถเขียนสคริปต์ทุบตีที่มีประสิทธิภาพและประสิทธิผลมากขึ้นได้