1

ユーザーがこのテキストファイルに入力した内容を比較して、入力した内容がテキストファイルにあるかどうかを判断し、ユーザーに伝えたいと思います。

file1:このファイルのcolor_readme.txtは次のとおりです。

red
red
orange
blue

コード:

echo Please enter a color:
cat color_readme.txt (printing the colors to screen)
read userinput (read what the user enters)
variable1 = grep $userinput (a random variable = what is found in the file according to what the user typed)
if userinput = variable1 (SAY THIS)
else (SAY THIS)

初心者のためにこれを行うための最良の方法は何ですか?私の先生は、ifelseやelseの基本的な条件を使用することだけを望んでいます。

4

3 に答える 3

4
echo "Pick one of the colours below:"
cat colour_readme.txt
read i
if x=$(grep "$i" colour_readme.txt)
then echo "You picked $i and it appears in colour_readme.txt as $x"
else echo "You picked $i but it does not appear in colour_readme.txt"
fi

test(または[または[[) 演算子を使用せずに、コマンドのステータスをテストできます。でテストできる終了ステータスを返す特別なコマンドですif

于 2012-10-14T21:58:33.800 に答える
2
echo "name a color"
read i
grep -q $i color.txt
if [ $? == 0 ]
then
echo "$i is in the file"
else
echo "$i is not in the file"
fi

"if [$?== 0]"は、前のコマンド(この場合はgrep)の終了ステータスをテストします。grepが何かを検出した場合、終了ステータスは0になり、検出されなかった場合、終了ステータスは1になります。

于 2012-10-14T22:10:52.177 に答える
2
answer="Wrong"
realcolour=`cat ./color_readme.txt`

Until [ $answer = "Correct" ] ; Do
echo -n "Please enter a colour:"
read usercolour

If [ $usercolour = $realcolour ] ; Then
     answer="Correct"
Else
     answer="Wrong"
Fi

echo $answer
Done

編集:...上記は、OPがテキストファイル内の複数の色を明確にする前に書かれました...

于 2012-10-14T21:58:28.227 に答える