A linha de leitura é ignorada

0

Eu tenho problema com uma leitura simples. Eu leio uma lista de itens xml e depois trabalho com eles. Em algum momento eu preciso perguntar se tenho certeza e aceito essa resposta em uma variável. Meu problema é que, se eu perguntar no "while read linea", o "read -p ..." é ignorado e não posso responder à pergunta.

xml2 < list | egrep "item" | egrep "url|pubDate|title" |  while read linea; 
do 

    case 1 in
        $(($x<= 1)))
            ...
            ;;
        $(($x<= 2)))
            ...
            ;;
        $(($x<= 3)))
            ....                        
            if [ $DIFERENCIA -lt $num_dias ];        
            then  

                ...                             
                read -p “Are you sure: ” sure                              
                ...

            fi                           

            ...
            ;;                
        *)
            let x=1
            ;;
    esac      

done  

Obrigado

    
por estonolose 18.02.2016 / 23:28

2 respostas

2

use este em vez disso:

read -p "Are you sure: " sure  </dev/tty

Aspas devem ser ascii 0x22, não UNICODE U-201c e U-201d .

    
por 18.02.2016 / 23:35
1

(para o bash) Fornece toda a linha de comando como entrada em algum outro descritor de arquivo 3 :

while read -ru 3 linea; do
    read -p "Are you sure: " sure
    echo "sure=$sure linea=$linea"
done 3< <(xml2 < list | egrep "item" | egrep "url|pubDate|title" )

E, por favor, use o ascii correto para aspas duplas: " , não U-201c e U-201d .

    
por 19.02.2016 / 02:01

Tags