Você não pode fazer isso no seu while
. Você precisa usar outro descritor de arquivo
Experimente a seguinte versão:
#!/bin/bash
#Returns the misspelled words
#ispell -l < file
#define vars
ISPELL_OUTPUT_FILE="output.tmp";
INPUT_FILE=$1
ispell -l < $INPUT_FILE > $ISPELL_OUTPUT_FILE;
#echo a new line for give space between command
#and the output generated
echo "";
while read -r -u9 line;
do
echo "'$line' is misspelled. Press "Enter" to keep";
read -p "this spelling, or type a correction here: " USER_INPUT;
if [ "$USER_INPUT" != "" ]
then
echo "INPUT: $USER_INPUT";
fi
echo ""; #echo a new line
done 9< $ISPELL_OUTPUT_FILE;
rm "$ISPELL_OUTPUT_FILE"
Veja Como evitar que outros comandos "comam" a entrada
NOTAS