Я хочу перебрать две строки с одинаковым разделителем и одинаковым количеством элементов в оболочке bash.
В настоящее время я делаю это:
string1=s1,s2,s3,s4
string2=a1,a2,a3,a4
IFS=','
count=0
for i in ${string1[@]}
do
echo $i
echo $count
// how can I get each item in string2?
count=$((count+1))
done
Насколько я знаю, я не могу перебирать две строки одновременно. Как я могу получить каждый элемент в строке 2 внутри цикла?
Извлеките поля каждой строки в отдельные массивы, затем выполните итерацию по индексы массивов.
IFS=, read -ra words1 <<< "$string1"
IFS=, read -ra words2 <<< "$string2"
for ((idx = 0; idx < ${#words1[@]}; idx++)); do
a=${words1[idx]}
b=${words2[idx]}
echo "$a <=> $b"
done
s1 <=> a1
s2 <=> a2
s3 <=> a3
s4 <=> a4