Tôi muốn viết một tập lệnh để tham chiếu nhiều mảng từ một mảng khác chứa các tên biến của mảng này.
Đây là mã của tôi cho đến nay:
#!/bin/bash
array1=('array1string1' 'array1string2')
array2=('array2string1' 'array2string2')
array_names=('array1' 'array2')
for a in ${array_names[@]}
do
for b in ${a[@]}
do
echo $b
done
done
Tôi muốn đầu ra quét qua cả hai mảng (từ vòng lặp for bên ngoài) và in các chuỗi tương ứng ở vòng lặp for bên trong để gọi echo. Đầu ra hiện tại của tôi chỉ cho tôi thấy:
array1
array2
Tôi sẽ biết ơn bất kỳ con trỏ liên quan đến điều này. Cảm ơn bạn!
${a[@]}
để ${!a}
làm những gì bạn muốn (tôi nghĩ).
${!a[@]}
đưa ra một chiều dài của mảng a
.
${!a}
chỉ là cho tôi những yếu tố đầu tiên.
for b in "${array1[@]}" "${array2[@]}"; do ...; done
?