Здравствуйте!
Есть почти скрипт, он должен обрабатывать каждую строку из файла по отдельности, в моём случае это email адреса:
#!/bin/bash
#выдёргиваем адреса из адресной книги
grep -E -o -h "[a-zA-Z0123456789=_-]+@([a-zA-Z0123456789=_-]+\.)+[a-zA-Z0123456789=_-]{2,3}" ~/.kde4/share/apps/kabc/std.vcf | uniq | cat -n | expand > abc
#цикл поочереди дожен выдёргивать строки из сделанного файла
i=1 #первая строка имеет номер 1
until [ "$i" -eq 5 ] #всего у нас 4 адреса
do
#выдёргиваем первую строку и выводим её в файл
grep -E -o -h $i+' '+'[a-zA-Z0123456789=_-]+@([a-zA-Z0123456789=_-]+\.)+[a-zA-Z0123456789=_-]{2,3} ' abc | grep -E -o -h '[a-zA-Z0123456789=_-]+@([a-zA-Z0123456789=_-]+\.)+[a-zA-Z0123456789=_-]{2,3}' > abctmp
#отображаем выдернутую строку
cat abctmp
#
#сюда я вставлю потом скрипт отправки сообщения на выдернутый адрес из первой строки
#
#переходим на вторую строку
let "i += 1"
done
#удаляем результат жизнедеятельности
rm -f abctmp
rm -f abc
exit
Я хотел бы, чтобы когда в цикле выдёргивается строка с адресом, она помещалась в переменную, а не в файл.
Может кто-нибудь сможет упростить код или предложить альтернативу некоторым сложным конструкциям?