La línea de lectura se ignora

La línea de lectura se ignora

Tengo un problema con una lectura simple. Leo una lista de elementos xml y luego trabajo con ellos. En algún momento necesito preguntar si estoy seguro y aceptar esta respuesta en una variable. Mi problema es que si pregunto en la línea " while read " se ignora el "read -p ..." y no puedo responder la pregunta.

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  

Gracias

Respuesta1

usa este en su lugar:

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

Las comillas deben ser ascii 0x22, no UNICODE U-201c y U-201d .

Respuesta2

(para bash) Proporcione la línea de comando completa como entrada en algún otro descriptor de archivo 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" )

Y utilice el ascii correcto para las comillas dobles: ", no U-201c y U-201d .

información relacionada