[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
read dentro de while read
From: |
Victor Hugo Leite |
Subject: |
read dentro de while read |
Date: |
Wed, 9 Feb 2011 11:50:41 -0200 |
Bom dia Senhores,
Estou desenvolvendo um script para processar um arquivo e me deparei com o
seguinte problema:
Preciso executar um read, com interação via terminal, dentro de um while
read... porém isso esta gerando um looping infinito, alguem pode me dar uma
luz de qual a melhor forma de fazer isto ?
O "read yn" nao esta aguardando a interação via terminal.
[~] # cat teste.txt
aaaa
bbbb
cccc
# dddd
eedd
ffff
# dddd
gddg
dddd
[~] # cat teste.sh
#!/bin/bash
xx=XX
while IFS=$'?' read linha; do
if echo "${linha}" | egrep -v '^#.*$' >/dev/null; then
echo "${linha}"
elif echo "${linha}" | fgrep "dd" >/dev/null; then
echo "Voce deseja adicionar ${xx} a esta linha ? [y/n]"
read yn
while [ -z $(echo "$yn" | grep -E '^[yYnN]$') ]; do
echo "Opcao invalida, tente novamente:"
read -e yn
done
case $yn in
y|Y) echo "Adicionando ${xx} a linha."
echo "${linha},${xx}"
;;
n|N) echo "Ok, linha nao alterada."
echo "${linha}"
;;
esac
else
echo "${linha}"
fi
done < teste.txt
[~] # sh teste.sh
aaaa
bbbb
cccc
Voce deseja adicionar XX a esta linha ? [y/n]
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Opcao invalida, tente novamente:
Att,
Victor Hugo Leite
[As partes desta mensagem que não continham texto foram removidas]
- read dentro de while read,
Victor Hugo Leite <=