読み取り行は無視されます

読み取り行は無視されます

単純な読み取りで問題があります。項目の 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

引用符は UNICODE U-201cや U-201dではなく、 ASCII 0x22 にする必要があります

答え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 は使用しないでください

関連情報