Solved

Shell script question

Posted on 1998-11-21
6
302 Views
Last Modified: 2010-05-18
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
Comment
Question by:markiez
6 Comments
 
LVL 84

Expert Comment

by:ozo
ID: 2007981
echo $quest | cut  -d' ' -f 1
0
 

Author Comment

by:markiez
ID: 2007982
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
 
LVL 84

Expert Comment

by:ozo
ID: 2007983
if ( echo $quest | grep '^will ')
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 1

Expert Comment

by:arthurd
ID: 2007984
A different way:

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

This grabs the first field of quest.

0
 

Accepted Solution

by:
bmoore111898 earned 200 total points
ID: 2007985
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
 

Author Comment

by:markiez
ID: 2007986
good job! u should get an A, expert.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tech tip describes how to install the Solaris Operating System from a tape backup that was created using the Solaris flash archive utility. I have used this procedure on the Solaris 8 and 9 OS, and it shoudl also work well on the Solaris 10 rel…
FreeBSD on EC2 FreeBSD (https://www.freebsd.org) is a robust Unix-like operating system that has been around for many years. FreeBSD is available on Amazon EC2 through Amazon Machine Images (AMIs) provided by FreeBSD developer and security office…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question