Bourne Shell - OR operator correct usage

hi me again.. gonna be here all night unfortunately.. I seem to be not using the | operator correctly.. i'm hoping someone can help me out


if the user answers with a "y" or "Y" i want it to do something.... well what I wrote works.. but obviously I would like to learn the correct and simplified way of doing it.  I tried it with "n" and "N" but that gives me an error of

line 10: [: missing `]'
line 10: n: command not found



i tried "N"|"n" with no spaces

i also tried [ $answer = "N" ] | [ $answer = "n" ]

couldn't get either to work..
#!/bin/sh
echo "Are you OK?"
read answer
if [ $answer = "y" ]
then
echo yes
elif [ $answer = "Y" ]
then
echo yes
elif [ $answer = "N" | "n" ]
then
echo no
else
echo BOO
fi

Open in new window

nocturn4lAsked:
Who is Participating?
 
ozoConnect With a Mentor Commented:
if [ "$answer" = "N" -o "$answer" = "n" ]
0
 
ozoCommented:
see
man test
0
 
nocturn4lAuthor Commented:
thank you... I try not to ask on here unless I've tried several things.. i'm following a book right now and I guess I misread it.. the OR operator | is for arithmetic only i guess?

thanks for the suggestion on looking up "man test". will do that right now
0
 
TintinCommented:
The logical OR operator is || not |
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.

All Courses

From novice to tech pro — start learning today.