shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] read dentro de while read


From: Jonathan Lessa
Subject: Re: [shell-script] read dentro de while read
Date: Wed, 9 Feb 2011 14:16:12 -0300

vc pode tbm utilizar o "-p" do read para eliminar o "echo", Ex.:

# read -p "Digite o texto: " variavel


Att.:
Jonathan

Em 9 de fevereiro de 2011 11:43, Julio C. Neves <address@hidden>escreveu:

>
>
> Fala Victor,
> troque a linha:
>
> read -e yn
>
> por:
>
> read -e yn < /dev/tty
>
> Isso pq qd vc fez: 'done < teste.txt', ordenou que todas as entradas do seu
> loop seriam feitas pelo arquivo teste.txt. Então é necessário explicitar
> que
> nesse caso, a entrada é do teclado padrão.
>
> Abraços,
>
> Julio
>
> *Cursos de Shell ou Zenity em fins de semana?*
>
> *☎ Ligue (21) 8112-9988* ☎
>
> Em 9 de fevereiro de 2011 11:50, Victor Hugo Leite <
> address@hidden> escreveu:
>
>
> >
> >
> > 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]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Att.:
Jonathan Lessa


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]