LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Bash Script Help (https://www.linuxquestions.org/questions/linux-newbie-8/bash-script-help-940748/)

DaverR 04-19-2012 05:56 PM

Bash Script Help
 
Hello everyone. I am trying to create a script as shown below. As you can see by the first line you can see what I am trying to do. I am having trouble getting it started. If you run it as is it will read the prompt and then exit the script without executing the command. Can anyone point me in the right direction? I have done reading and it still is confusing to me how to get started and make it work.

!/bin/bash
echo "Please select l to list files of a directory, b to backup a file or directory, u to edit a user's password, and x to exit the script"

read $answer
case $l in

l)

printf "Please select folder:\n"
select d in */; do test -n "$d" && break; echo ">>> Invalid Selection"; done
cd "$d" && pwd

ls
;;
esac

chrism01 04-19-2012 06:04 PM

Have you considered that you are putting the response in one var, but testing a different one ...

jlinkels 04-19-2012 07:30 PM

read $answer (you missed that one chrism01 :D)

The $ is not allowed.

You should test $answer, not $l (as chrism01 said)

Use the red colored command in my signature

jlinkels

chrism01 04-19-2012 07:56 PM

:) Can't remember the last time I wrote a shell script that involved the read cmd ...

grail 04-20-2012 01:30 AM

Might just be a typo, but I would also note the missing # from the shebang, should be:
Code:

#!/bin/bash

jlinkels 04-20-2012 05:46 AM

Quote:

Originally Posted by grail (Post 4658037)
Might just be a typo, but I would also note the missing # from the shebang, should be:
Code:

#!/bin/bash

:banghead: !!

jlinkels

DaverR 04-20-2012 06:26 AM

Yes. The "#" was left off when I copied the script. Writing scripts is all new to me. I understand the very basics and what it is supposed to do but the commands needed and how they are used is confusing to me. I really don't have the time I would like to devote to learning it the way I want to. I am trying to get the script to work for a school project. If I could figure out how to get the first lines to work I could probably figure out the rest. If you run the printf command by itself it does what I want it to for that sections except it allows you to enter any letter you want instead of just the "l". I want to specify the user use these letters only and have a command for each one. Thanks for all your input.

grail 04-20-2012 08:58 AM

So do you have another question or your right to go with the information provided?

DaverR 04-20-2012 12:19 PM

Grail

I understand I need to get rid of the read command but I am not sure how to exactly start the script to read the "l" and so forth. If I can get that part I should be able to do the rest.

Thanks

suicidaleggroll 04-20-2012 12:28 PM

This should be able to get you started then:

Code:

#!/bin/bash

echo "Please select l to list files of a directory, b to backup a file or directory, u to edit a user's password, and x to exit the script"

read answer
case "$answer" in

l)
  echo "You entered l"
;;
b)
  echo "You entered b"
;;
u)
  echo "You entered u"
;;
x)
  echo "You entered x"
;;
*)
  echo "Invalid selection"
;;

esac


grail 04-20-2012 12:31 PM

No the read command is fine. You can alternatively use parameters on the command line but at this point they may be a little advanced.

If you follow the advice above, ie. $ is only required when getting information from the variable (like in the case statement) but other wise it should not have one.
The other advice being that if you assign information to one variable, like "answer", then there is little point using another variable in the case statement, like "l" as it will
be blank and hence the case will never match anything.

DaverR 04-22-2012 08:07 PM

Grail

Thanks for all your help. I would not have been able to figure it out without you unless I had more time. It may be simple to all you guys but the last time I did this was in high school when we had Apple computers in the '80s. Man I feel old! I know where to go if I need more help. Thanks everyone!

grail 04-23-2012 01:11 AM

Yeah I remember using the Apple IIe at school :)

Here are some references for you:

http://mywiki.wooledge.org/TitleIndex
http://tldp.org/LDP/abs/html/


All times are GMT -5. The time now is 01:36 PM.