• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 330
  • Last Modified:

Shell script question

I am a begining unix student and our instructor made us write simple scripts. I have this particular problem that i and my teacher couldn't solve at this time:

I am writing a script that works in a similar way as a "Magic 8 Ball", in which the person types in a question and the script generates an answer based on what they type.  But actually, the answer is only determined depending on the first word they type in the sentence. For example, the person may write "Will i be rich someday" and the script answers "certainly not".  The script seems smart but actually, the answer was determined because he typed the word "will" in the begining of his question. so whatever question they type and it contains a "will" inthe begining , they will get the same "certainly not" answer.  And when someone types a "who" in the begining, another answer is designated for that.

The problem is that I have a hard time making the script work in a way that it only grabs the first word of their question and that determines the answer. I tried cut, paste and greps but i was not successful. here is my script:

#thename=`logname`
#echo "~~~~~ WELCOME $thename TO THE MYSTERIOUS BEYOND~~~~~ #\n
#What is your question? \c $quest"
#read quest>file1
#        if [$quest = `cat $quest | grep will`]
#        then echo "Don't count on it!"
#         else echo "please ask again"

i typed in the # signs just to make sure that the script wouldnt affect your system (im not even sure if it will) this is how far i got and it is still wrong. Please help. its driving me crazy! thanks =)      
0
markiez
Asked:
markiez
1 Solution
 
ozoCommented:
echo $quest | cut  -d' ' -f 1
0
 
markiezAuthor Commented:
Thanks ozo for submitting the solution:
echo $quest | cut  -d' ' -f 1

I would just like to ask where exactly in the script do i put this line? Thanks
0
 
ozoCommented:
if ( echo $quest | grep '^will ')
0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

 
arthurdCommented:
A different way:

if [ `echo $quest | awk '{print $1}'` = "will" ]

This grabs the first field of quest.

0
 
bmoore111898Commented:
Here is a complete program for you..

#!/bin/sh

echo "Enter your question: \c"
read question
echo

firstword=`echo $question | cut -d' ' -f1 | tr 'A-Z' 'a-z'`
# The pipe through tr is used to convert to lowercase, so if they type Will,WILL, or will
# it will work

case $firstword in
  "hello"|"hi" )  
                echo "Hi yerself,\c";
                echo "But thats not a question";
                echo "Why don't you try asking one";;
  "will"   )   echo "Certainly not";;
  "who"    ) echo "You";;
   default )  echo "How should I know";;
esac

# In the case statement above notice the use of single semi-colons and double #semi-colons.  With single ones you can have multiple statements for a single case.
#Use a double semi-colon to end that case.
0
 
markiezAuthor Commented:
good job! u should get an A, expert.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now