Vyacheslav Karamov пишет: > Vladimir Khramtsov пишет: > >>> #!/bin/bash >>> >>> var1= >>> var2= >>> >>> cat $1 | while read -e var1 var2 >>> do >>> echo "var1 = $var1 var2 = $var2" >>> done >>> >>> >> Вячеслав, мне стыдно, но вынужден спросить. Вы предложили интересное >> решение, но как полученные переменные вынести за пределы цикла? К >> примеру: >> >> echo "123 456" | while read -e var1 var2 >> do >> echo "var1 = $var1 ; var2 = $var2" >> done >> echo "var1 = $var1 ; var2 = $var2" >> >> На выходе: >> var1 = 123 ; var2 = 456 >> var1 = ; var2 = >> >> Что не так?! O_o >> >> > Вы упустили инициализацию ПЕРЕД циклом :) > > > Я же не знаю всей задачи, я предложил решение исходя из собственного > понимания потребностей автора. > > Ничто не мешает "углубить и расширить" код таким образом:
#!/bin/bash unset var1 var2 i declare -a arr1 declare -a arr2 cat $1 | while read -e var1 var2 do arr1[i] = var1; arr2[i++] = var2; done Вот Вам и два заполненных массива. -- ubuntu-ru mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
