读取行被忽略

读取行被忽略

我在简单阅读时遇到问题。我读取了 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

相关内容