I cannot figure out how to get user input into a script
I have a section of a script that is supposed to change the filename of similar files in a directory. It works the way I need it to work, except that I would like to input the new filename each time it runs without having to edit the script.
I capture 5-6 images into ~/screenshots. They are labeled Picture 1.png, Picture 2.png, etc. I would like to be able to rename them as Lesson 1.png, Lesson 2.png, and so forth. It works if I hardcode the new NAME (Lesson) into the script, but I want to replace NAME with a variable that I can input at a prompt or pass into the script from another. I have tried setting a variable and replacing "Lesson" with $variable in line #11, but that leaves me with only the extension and no filename. I have also tried using $1 on the command line:
ie: $ ./namer $1
and fname=$1
and replace Lesson with $fname in line #11
but it still changes everything to a null filename
Here is what I have that works:
1 #!/bin/sh
2 # I need to get user input for new filename
3
4 # cd to screenshots directory
5 cd ~/screenshots
6
7 # this next line removes spaces from filenames
8 for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done
9
10 #this changes the Picture to Lesson
11 ls * | awk '{print("mv -v "$1" "$1)}' | sed 's/Picture/Lesson/2' | /bin/sh
How do I get a variable into this script?
Thanks in advance!
JF
|