Vì lớp vỏ ưa thích của bạn là Cá nên tôi sẽ đưa ra ba tùy chọn.
Đầu tiên, đưa ra Danh sách dữ liệu
ở định dạng chuỗi, bạn có thể sử dụng tách chuỗi
để chia các dòng riêng lẻ thành một danh sách thực tế:
> đặt Danh sách dữ liệu "
Con mèo
Chú chó
Con thỏ
Chuột bạch
chuột đồng
"
> đặt --show DataList
$DataList: được đặt trong phạm vi toàn cầu, chưa được xuất, với 1 phần tử
$DataList[1]: |\nMèo\nChó\nThỏ\nGuineaPig\nHamster\n|
> đặt Giá trị (tách chuỗi -n \n "$DataList")
> đặt --show Giá trị
$Value: được đặt trong phạm vi toàn cầu, chưa được xuất, có 5 thành phần
$Value[1]: |Mèo|
$Value[2]: |Con chó|
$Value[3]: |Con thỏ|
$Value[4]: |GuineaPig|
$Value[5]: |Hamster|
> tiếng vang $Value[2]
Chú chó
^ Các dòng trống trong ví dụ hoàn toàn để dễ đọc và không xuất hiện trong đầu ra thực tế
Nhưng nếu bạn có thể, chỉ cần nhúng dữ liệu dưới dạng danh sách theo nghĩa đen vào tập lệnh và tránh thêm tách chuỗi
:
> đặt DataList "Cat" \
"Chú chó" \
"Con thỏ" \
"Chuột bạch" \
"Chuột đồng"
> đặt --show DataList
$DataList: được đặt trong phạm vi toàn cầu, chưa được xuất, với 5 phần tử
$DataList[1]: |Cat|
$DataList[2]: |Chó|
$DataList[3]: |Rabbit|
$DataList[4]: |GuineaPig|
$DataList[5]: |Hamster|
> tiếng vang $DataList[2]
Chú chó
Cuối cùng, câu hỏi của bạn, theo nghĩa đen, là tách danh sách thành biến, thay vì một biến chứa danh sách. tôi cho rằng đó không phải là Thực ra Ý của bạn là gì. IMHO sẽ hơi bệnh hoạn, vì bạn sẽ mất khả năng dễ dàng đếm, lặp lại và lập chỉ mục kết quả, nhưng nó có thể được làm ...
đặt Danh sách dữ liệu "
Con mèo
Chú chó
Con thỏ
Chuột bạch
chuột đồng
"
đặt v (tách chuỗi -n \n "$DataList")
đặt scrpt (đối với tôi trong (seq (count $v))
echo 'đặt giá trị'(math $i-1) '"'$v[$i]'"'
chấm dứt)
eval (nối chuỗi ";" $scrpt)
đặt --erase v
đặt --erase scrpt
Kết quả trong:
$Value0 = "Mèo"
$Value1 = "Chó"
$Value2 = "Con thỏ"
$Value3 = "GuineaPig"
$Value4 = "Chuột đồng"