Unix pattern macthin help needed

Hi guys i'm tryin to write a hangman script and need a bit of help wit some writing a function.
I'm tryin to wite a hangman game andhave got a bit stuck now. I'm tryin to compare a inputed letter into the script with the secret word of the game.  without the use of sed or awk. e.g if a user inputs "a"i want t compare the letter to every letter in the secret word of the game i dont want to use sed or awk so an example with erm will not gain the points thankyou or ur help
DSwiftieAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
ozoConnect With a Mentor Commented:
#!/bin/bash
secretword="d o g"
guesses=" _"
while [[ "${secretword//[^$guesses]/}" != "$secretword" ]] ; do
  read guess
  if [[ ${guess/[a-z]/_} == "_" && ${guess/[^$guesses]/#} == "#" ]] ; then
    guesses="$guesses$guess"
    echo ${secretword//[^$guesses]/_}
  fi
done
0
 
ozoCommented:
if echo $inputed_letter |  grep [$secretword] ; then echo match ; fi
0
 
DSwiftieAuthor Commented:
lets say at the start of the game i wanted to use "_" to represent each letter how do i get and every time the correct letter is inputed how do i get it to first display the _ and replace each underscore evertime the correct letter is inputed
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
ozoCommented:
echo $secretword | tr -c $inputed_letter _
0
 
ozoCommented:
You may want to either make that echo -n or initialize $inputed_letters to \n
0
 
DSwiftieAuthor Commented:
wat do u mean by intialize it to \n not ever used it before
0
 
DSwiftieAuthor Commented:
oh yea one more thing how do i get the script to show a  _ for every letter of the word when the game is started i know its a simple question but it makes it easier to know how to replace each _

cheers for ur help me well appricated
0
 
DSwiftieAuthor Commented:
think to better understand the code to replace the _ i need to understand how to get each letter to print a _ for letter of secreword
0
 
ozoCommented:
echo -n $secretword | tr -c _ _
0
 
DSwiftieAuthor Commented:
that commands really helps but i'm tryin to make sure sure the speace is left between each _

get if therunning word is dog

then it should print _ _ _ and not ___ as that above one sems to be doin sori to b a pain i'm a complete noob at unix
0
 
ozoCommented:
You said no sed or awk, but what about perl?
0
 
DSwiftieAuthor Commented:
have nevver even heard of perl i might have to do it using a while statement of somethin i gues while cutin each letter of the word out to print each of the _ _ prob is replacing the _ with a letter will be my main problem. And here i thought i was finished with teh script. Nywayz m8 thankyou very much for your help i know i ended up askin more than i had stated above thx for the help
0
 
DSwiftieAuthor Commented:
just out of inrest how wuld i do the _ _ _ using perl b4 i start tryin ny long complicated while loops
0
 
TintinCommented:
Why the restriction with sed or awk?  Using Perl would be in the same category as using sed/awk.
0
 
TintinCommented:
For example, to use Perl, you'd do

echo dog | perl -pe 's/./_ /g'

which the sed equivalent is

echo dog | sed "s/./_ /g"
0
 
DSwiftieAuthor Commented:
i can't explain sed and awk n i just realised perl thus so i dont want to use erm i wuld have prefered not usin some special lang completely tbh
0
 
ozoCommented:
shells are also special languages,  and not languages particularly suited to the task

#!/bin/bash
for (( i=${#secretword}; $i ; --i )) ; do echo -n "_ " ; done
0
 
ozoCommented:
#!/bin/bash
echo ${secretword//?/_ }
0
 
DSwiftieAuthor Commented:
that will do thankyou vey much for your help m8 well appricated culd never hav done with without u
0
All Courses

From novice to tech pro — start learning today.