เนื่องจากเปลือกหอยที่คุณต้องการคือปลา ฉันจะเสนอสามตัวเลือก
ประการแรกกำหนดให้ รายการข้อมูล
ในรูปแบบสตริง คุณสามารถใช้ แยกสตริง
เพื่อแยกแต่ละบรรทัดออกเป็นรายการจริง:
> ตั้งรายการข้อมูล "
แมว
หมา
กระต่าย
หนูตะเภา
หนูแฮมสเตอร์
"
> ตั้ง --แสดงรายการข้อมูล
$DataList: ตั้งค่าในขอบเขตส่วนกลาง ไม่ส่งออก มี 1 องค์ประกอบ
$DataList[1]: |\nแมว\nสุนัข\nกระต่าย\nหนูตะเภา\nแฮมสเตอร์\n|
> ตั้งค่า (แยกสตริง -n \n "$DataList")
> ตั้ง --แสดงค่า
$Value: ตั้งค่าในขอบเขตส่วนกลาง ไม่ส่งออก โดยมีองค์ประกอบ 5 รายการ
$Value[1]: |แมว|
$Value[2]: |สุนัข|
$Value[3]: |กระต่าย|
$Value[4]: |หนูตะเภา|
$Value[5]: |แฮมสเตอร์|
> สะท้อน $Value[2]
หมา
^ บรรทัดว่างในตัวอย่างมีไว้เพื่อให้อ่านง่ายเท่านั้น และไม่ปรากฏในเอาต์พุตจริง
แต่ถ้าคุณทำได้ ให้ฝังข้อมูลเป็นรายการตามตัวอักษรในสคริปต์ต่อไปและหลีกเลี่ยงสิ่งที่เกินมา แยกสตริง
:
> ตั้งค่า DataList "แมว" \
"หมา" \
"กระต่าย" \
"หนูตะเภา" \
"แฮมสเตอร์"
> ตั้ง --แสดงรายการข้อมูล
$DataList: ตั้งค่าในขอบเขตส่วนกลาง ไม่ส่งออก มี 5 องค์ประกอบ
$DataList[1]: |แมว|
$DataList[2]: |สุนัข|
$DataList[3]: |กระต่าย|
$DataList[4]: |กินีพิก|
$DataList[5]: |แฮมสเตอร์|
> echo $DataList[2]
หมา
สุดท้าย คำถามของคุณตามตัวอักษรคือแยกรายการออกเป็น ตัวแปรแทนที่จะเป็นตัวแปรที่มีรายการ ฉันคิดว่านั่นไม่ใช่ จริงๆ สิ่งที่คุณหมายถึง น่าจะเป็นพยาธิสภาพเล็กน้อย IMHO เนื่องจากคุณจะสูญเสียความสามารถในการนับ วนซ้ำ และจัดทำดัชนีผลลัพธ์อย่างง่ายดาย แต่ สามารถ เรียบร้อย...
กำหนดรายการข้อมูล "
แมว
หมา
กระต่าย
หนูตะเภา
หนูแฮมสเตอร์
"
set v (แยกสตริง -n \n "$DataList")
ตั้งค่า Scrpt (สำหรับ i ใน (seq (นับ $v))
echo 'ตั้งค่า'(คณิตศาสตร์ $i-1) '"'$v[$i]'"'
จบ)
eval (สตริงเข้าร่วม ";" $scrpt)
ชุด --erase v
ตั้งค่า -- ลบสคริปต์
ผลลัพธ์ใน:
$Value0 = "แมว"
$Value1 = "สุนัข"
$Value2 = "กระต่าย"
$Value3 = "หนูตะเภา"
$Value4 = "แฮมสเตอร์"