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 |
Have you considered that you are putting the response in one var, but testing a different one ...
|
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 |
:) Can't remember the last time I wrote a shell script that involved the read cmd ...
|
Might just be a typo, but I would also note the missing # from the shebang, should be:
Code:
#!/bin/bash |
Quote:
jlinkels |
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.
|
So do you have another question or your right to go with the information provided?
|
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 |
This should be able to get you started then:
Code:
#!/bin/bash |
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. |
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! |
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. |