
単純な読み取りで問題があります。項目の 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 は使用しないでください”
。