クラスの場合、出力を取得するBashスクリプトを作成する必要があり、ispell
whileループ内でユーザー入力を要求すると、ファイルの次の行だけがユーザー入力として保存されます。
whileループでユーザー入力をどのように要求できますか?
#!/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 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 < $ISPELL_OUTPUT_FILE;
rm $ISPELL_OUTPUT_FILE;
ベストアンサー1
では使用できませんwhile
。他のものを使用する必要があります。ファイル記述子
次のバージョンをお試しください。
#!/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"
ノート
- より多くの引用符を使用してください!それらは非常に重要です。バラよりhttp://mywiki.wooledge.org/Quotesそしてhttp://wiki.bash-hackers.org/syntax/words
bash
ないC
かPerl
、;
両端に電線を入れる必要はありません。