我在简单阅读时遇到问题。我读取了 xml 项目的列表,然后使用它们。在某些时候,我需要询问我是否确定并接受变量中的此响应。我的问题是,如果我询问“while read linea”,“read -p ...”将被忽略,我无法回答这个问题。
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
谢谢
答案1
使用这个代替:
read -p "Are you sure: " sure </dev/tty
引号应该是 ascii 0x22,而不是 UNICODE U-201c“
和 U-201d ”
。
答案2
(对于 bash)提供整个命令行作为其他文件描述符的输入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" )
并且请使用正确的 ascii 双引号:"
,而不是 U-201c“
和 U-201d ”
。