
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 ”
.