LINUX.ORG.RU

[bash] занятый stdin


0

1

Всем привет. Нужен совет/помощь в написании небольшого скрипта.

Цель: считать построчно файл, после считывания каждой строки спросить у пользователя подтверждение на обработку этой самой строки и обработать, если тот ответит да.

Собственно пробую так:

cat $filepath | while read -r line;
do
#что то происходит с $line
echo "Обработать? [y/n]";
read ans;
#что то происходит или не происходит в зависимости от ответа
done;
Но не работает, разумеется.

Как правильно сделать, подскажите?


Недавно смотрел в bashe-е зарезервированные ключевые слова и откопал «select». Посмотрите, это не оно?

Если решать задачу вашим способом, то можно поиграться с дескрипторами. Смотрите соответствующий раздел здесь

undertaker ★★ ()
Ответ на: комментарий от undertaker

Пасиб, я даже уже пробовал, но пока не получилось.)

mete0 ()

Во, получилось вот так сделать:

exec 4<$filename;
while read line <&4;
do
	echo "Обработать "$line" ?";
	read asq;
	if [ "$asq"="y" ]; then
		echo "обрабатываем";
	else
		echo "мимо";
	fi;
done;
Это не костыль надеюсь?)

mete0 ()
Ответ на: комментарий от mete0

Это не костыль, это «по-пацански»... в смысле правильно :)

Jetty ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.