Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

ตัวแปรอาร์เรย์ใน Bash, วิธีใช้งาน, พร้อมตัวอย่าง

เราได้กล่าวถึงการใช้ตัวแปรใน Bash ก่อนหน้านี้ - บทความนี้จะอธิบาย Bash array ตัวแปรและให้ตัวอย่างการใช้งาน

อาร์เรย์คืออะไร

อาร์เรย์เป็นตัวแปรประเภทหนึ่งที่สามารถเก็บค่าได้หลายค่า เป็นรายการค่าที่คุณสามารถวนซ้ำและดำเนินการกับแต่ละค่าได้

ตัวอย่างเช่น คุณอาจต้องการดำเนินการกับรายการไฟล์ โดยการจัดเก็บรายการนั้นเป็นอาร์เรย์ คุณสามารถวนซ้ำชื่อไฟล์ในนั้นและดำเนินการกับแต่ละรายการได้

อาร์เรย์จะได้รับการจัดทำดัชนี โดยตำแหน่งของแต่ละรายการในอาร์เรย์จะแสดงด้วยตัวเลขเริ่มต้นที่ 0 .

อาร์เรย์ทุบตีไม่ต้องการให้องค์ประกอบอาร์เรย์ได้รับการจัดทำดัชนี ต่อเนื่องกัน – หรืออยู่ติดกันโดยไม่มีช่องว่าง – คุณสามารถมีค่าที่ตำแหน่งอาร์เรย์ 0, 3, 17 โดยไม่มีค่าระหว่างนั้นเป็นต้น

ดูข้อมูลเพิ่มเติมเกี่ยวกับอาร์เรย์ Bash ได้ที่ Linux Documentation Project

การสร้าง Bash Array

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

ทำไมคุณควรตัดเส้นทางไฟล์เป็นสตริงในเชลล์สคริปต์ของคุณ

มีหลายวิธีในการประกาศอาร์เรย์ ดังรายละเอียดด้านล่าง

ประกาศทางอ้อม

อาร์เรย์สามารถประกาศโดยอ้อมโดยการกำหนดค่าขององค์ประกอบอาร์เรย์ – อาร์เรย์จะถูกสร้างขึ้นพร้อมกับองค์ประกอบอาร์เรย์ด้วยค่าที่กำหนด

ARRAYNAME[INDEX]=VALUE

ตัวอย่างเช่น:

#!/bin/bash
peopleArray[3]="Tom"

อาร์เรย์ peopleArray จะถูกสร้างขึ้นโดยอัตโนมัติ (ทางอ้อม) เมื่อกำหนดค่าในอาร์เรย์ – ในกรณีนี้ ค่า “Tom” จะถูกกำหนดให้กับดัชนี 3 ใน peopleArray ที่สร้างขึ้นใหม่ .

ประกาศโดยตรง

คำสั่งประกาศยังสามารถใช้เพื่อกำหนดอาร์เรย์:

declare -a ARRAYNAME

ตัวอย่างเช่น:

declare -a peopleArray

สิ่งนี้จะสร้างอาร์เรย์ว่างที่เรียกว่า peopleArray .

การสร้างผ่านการกำหนดแบบผสม

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

ARRAYNAME=(value1 value2 ...)

สิ่งนี้กำหนดค่าของอาร์เรย์ให้กับชื่อตัวแปร ค่าอาร์เรย์อยู่ใน () (วงเล็บมาตรฐาน) และคั่นด้วยช่องว่าง ค่าที่มีช่องว่างควรยกมา

ตัวอย่างเช่น:

peopleArray=("Tom", "Bill", "Theodore Baker Sr.")

การกำหนดค่าให้กับอาร์เรย์

การเพิ่มค่าใหม่ให้กับส่วนท้ายของอาร์เรย์

หากต้องการเพิ่มค่าให้กับอาร์เรย์ ให้กำหนดค่าโดยไม่ได้ระบุดัชนี:

ARRAYNAME[]=VALUE

ตัวอย่างเช่น:

peopleArray[]="Tony"

การแทนที่ค่าในอาร์เรย์

หากต้องการแทนที่ค่า ให้เขียนทับค่าที่ดัชนีของค่าปัจจุบัน

ตัวอย่างเช่น หากคุณมีอาร์เรย์ที่มีค่าดัชนี 7 ซึ่งคุณต้องการแทนที่:

peopleArray[7]="Tony"

การลบค่าในอาร์เรย์

ลบค่าจากอาร์เรย์โดยใช้ unset คำสั่งและระบุดัชนีอาร์เรย์:

unset ARRAYNAME[INDEX]

ตัวอย่างเช่น:

unset peopleArray[1]

…จะลบค่าที่สองในอาร์เรย์ peopleArray .

การเข้าถึงค่าอาร์เรย์

ในการเข้าถึงค่าในอาร์เรย์ คุณต้องใช้ วงเล็บปีกกา – มิฉะนั้น Bash จะไม่ตีความวงเล็บที่มีดัชนีอาร์เรย์อย่างถูกต้อง:

echo ${ARRAYNAME[INDEX]}

ตัวอย่างเช่น:

#!/bin/bash
peopleArray=("Tom", "Bill", "Theodore Baker Sr.")
echo ${peopleArray[0]}

…จะส่งออก:

Tom

โดยที่บรรทัดสุดท้ายคือ:

echo $peopleArray[0]

อาร์เรย์การวนซ้ำ

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