লাইন দ্বারা ফাইল লাইন পড়ার সময় ব্যবহারকারীর ইনপুট অনুরোধ


9

ক্লাসের জন্য আমাকে একটি বাশ স্ক্রিপ্ট লিখতে হবে যা আউটপুটটি গ্রহণ করবে ispellএবং যখন আমি চেষ্টা করব এবং যখন লুপের মধ্যে ব্যবহারকারীর ইনপুটটি অনুরোধ করব তখন এটি কেবল ফাইলের পরবর্তী লাইনটিকে ব্যবহারকারী ইনপুট হিসাবে সংরক্ষণ করবে sa

আমি কীভাবে লুপটিতে ব্যবহারকারীর ইনপুটটির অনুরোধ করতে পারি?

#!/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;

উত্তর:


8

আপনি আপনার মধ্যে এটি করতে পারবেন না 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"

ইনপুট "খাওয়া" থেকে অন্যান্য আদেশগুলি কীভাবে রাখবেন তা দেখুন

মন্তব্য


0
#!/bin/bash

exec 3<> /dev/stdin

ispell -l < $1 | while read line
do
    echo "'$line' is misspelled. Press 'Enter' to keep"
    read -u 3 -p "this spelling, or type a correction here: " USER_INPUT

    [ "$USER_INPUT" != "" ] && echo "INPUT: $USER_INPUT"
done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.