What am I doing wrong?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers What am I doing wrong?
# 1  
Old 06-19-2007
What am I doing wrong?

I really just mess around in UNIX, for the most part, when I want to get something done. I can usually piece things together by searching for brief how-to's on Google, but the syntax errors in my following .sh file are really confusing me. I've got lots of programming experience in other places, so geek-speak is fine.

If you can't tell what my code is supposed to do, I can explain it, but I feel (even with my errors) it should be clear. Oh, and I am running this through the Terminal on Mac OS X.

Code:
hommv_path="/Applications/Games/Heroes\ of\ Might\ and\ Magic\ V.app/"
move_dir="~/Desktop/"
maps_dir="Contents/Resources/transgaming/c_drive/Program\ Files/Ubisoft/Heroes\ of\ Might\ and\ Magic\ V/"
total_dir=$hommv_path$maps_dir
folder_name="Maps/"
#
#Creates the Maps directory if needed
if [ -d $total_dir$folder_name ];
	then
	echo "Maps folder found.";
else
	cd $total_dir;
	mkdir $folder_name;
	echo "New folder $folder_name created in $total_dir.";
fi
#
#Moves all .h5m files from the move_dir to the Maps folder
cd $move_dir
for file in *.h5m;
	do
	mv $file $total_dir$folder_name;
	echo "Map $file moved to $total_dir$folder_name";
done
#
echo "All maps moved successfully."


Last edited by demonpants; 06-19-2007 at 01:57 PM..
# 2  
Old 06-19-2007
Quote:
Originally Posted by demonpants
Code:
#Copies all .h5m files from the copy_dir to the Maps folder
cd $copy_dir
for file in '*.h5m';
	do
	mv $file '$total_dir$folder_name';
	echo "Map $file moved to $total_dir$folder_name";
done
#
echo "All maps moved successfully."

1. Are you moving or copying? Comment says copy, code says move.

2. Why do you have mixes of single quotes and double quotes?

3. for file in '*.h5m' would only copy a file called '*.h5m', you don't need those quotes.
# 3  
Old 06-19-2007
1) I am moving, I messed up on the comment.
2) I have quote mixes left over from trying all different combinations of things to get it to work. So there is absolutely no difference?
3) I had the quotes there because this is where my error is being reported. Here is the error.

Code:
/Users/eli/Desktop/HoMM V Map Mover.sh: line 28: syntax error near unexpected to'en `
'Users/eli/Desktop/HoMM V Map Mover.sh: line 28: `for file in *.h5m;

Line 28 is
Code:
for file in *.h5m;

# 4  
Old 06-19-2007
try this

Code:
for file in '*.h5m'

It should work fine. I am a master at making these kind of mistakes Smilie
kamitsin
# 5  
Old 06-19-2007
Demonpants,
Your problem is related to the spaces in the directory names.
There is no problem with your statement:
Code:
for file in *.h5m

The above will loop through all files that end with ".h5m".
If single or double quotes are used in this case, the shell will
take it literally as "*.h5m".
# 6  
Old 06-19-2007
Okay, so then how do I eliminate space issues with directory names? When I copy paste using "\ " to represent a space into the Terminal, it works fine. If this isn't how I do it within a shell file, what should I change?
# 7  
Old 06-19-2007
Try using double quotes around it:
Code:
mv $file "$total_dir$folder_name"

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Why result is wrong here ? whether break statement is wrong ?

Hi ! all I am just trying to check range in my datafile pls tell me why its resulting wrong admin@IEEE:~/Desktop$ cat test.txt 0 28.4 5 28.4 10 28.4 15 28.5 20 28.5 25 28.6 30 28.6 35 28.7 40 28.7 45 28.7 50 28.8 55 28.8 60 28.8 65 28.1... (2 Replies)
Discussion started by: Akshay Hegde
2 Replies

2. UNIX for Advanced & Expert Users

What am I doing wrong here?

I am working on a simple login ID check shell script that should prompt for a user ID then check to see if this user is logged on. Trying to get the hang of this stuff so I am thinking of my own little projects. #! /bin/sh echo "please enter a user name" read user if user=$user then... (3 Replies)
Discussion started by: jsk319342
3 Replies

3. Shell Programming and Scripting

Is there anything wrong?

For one of my script, I want one extra parameter needs to be added to one of the Usage option. Below its given #Check Input parameters are valid if ; then function usage() { echo echo "*******************************************" echo " !!! USAGE... (2 Replies)
Discussion started by: raghunsi
2 Replies

4. UNIX for Dummies Questions & Answers

What is wrong in here ???

]#PATH=/usr/bin:/etc:/bin:/boot/grub:/boot/grup/bin: /boot/solaris/bin:/sbin:/usr/openwin/bin:/usr/5bin://usr/X11/bin:/usr/apache/bin:/usr/apache2/bin:/usr/appserver/bin:... (9 Replies)
Discussion started by: microbot
9 Replies

5. Shell Programming and Scripting

what I m doing wrong?

when user select option 2 nothing happen.for testing purpose I put echo command but is not executing . basically when user prompt for option 2,I want to get list of database name from user separeted by space (TEST DEVL) and put into the file seprated by new line TEST DEVL after that stay on... (1 Reply)
Discussion started by: okreporthai
1 Replies

6. UNIX for Dummies Questions & Answers

what is wrong with this tr -d?

here is my command in bash shell on Mac OS X tiger: history | tr -d emacs here is what I get: hitory | grp "" | tr -d "" hitory | grp "" | tr -d """" hitory | grp "" | tr -d '' hitory | grp "" | tr -d '' hitory | grp "" | tr -d '' hitory | grp "" | tr -d... (3 Replies)
Discussion started by: cleansing_flame
3 Replies

7. UNIX for Dummies Questions & Answers

what is wrong here

Hello, I have a simple script such as ----------------------------- #! /bin/sh YEAR=`date -u +%Y`; MONTH=`date -u +%m`; DAY=`date -u +%d`; DATE=$MONTH$DAY$YEAR LOGFILES=auditTrail-$DATE LOGMATCH=$LOGFILES\* ARGUM='' # find all files and write them to a file find . -name... (7 Replies)
Discussion started by: arushunter
7 Replies

8. Shell Programming and Scripting

Anything wrong with this

Does anyone see anything wrong with this. #getInfraFiles() #{ # cd Infra/$DAY # rm * # /usr/bin/ftp -i -n $LINE << cmd # user "$USER" "$PASSWD" # cd $INFRAPATH # binary # mget * # bye #} besides that its commented out (4 Replies)
Discussion started by: rcunn87
4 Replies

9. UNIX for Dummies Questions & Answers

Please tell me what do I do wrong here!

#!/usr/bin/csh # DAY=`date +%y%m%d` H=`date +%H` M=`date +%M` mailx -s "$H-Myfile" email@email.com</home/mydir/myfile Thanks! (4 Replies)
Discussion started by: bobo
4 Replies

10. UNIX for Advanced & Expert Users

What am I doing wrong

When I execute following shell script I am getting the following error syntax error at line 50 : `<<' unmatched What am I doing wrong :confused: Script begins here ---------------- MPAN_FILE=$1 exec 3<$MPAN_FILE ... (2 Replies)
Discussion started by: guptan
2 Replies
Login or Register to Ask a Question