user1431282
user1431282

Reputation: 6845

Shell Script and Command Line Discrepancies

I was wondering if there were specific permissions that were associated with a shell script or if some variable references are taken as being syntactically different.

I tried my short renaming script below:

#!/bin/bash

echo "Starting Renaming Script" 

for file in ./*
do
rename=$(echo $file | sed 's/\(img_\)\([0-9]*-[0-9]*\)-\([0-9]*\)_\([0-9]*\).jpg/newyears_20\3-\2_0\4.jpg/')
mv $file $rename
done

All it does is rename a few files, but I noticed that it would work on the command line, but not in the shell script when I ran sh rename.sh

I got the error

rename.sh: syntax error at line 7: `rename=$' unexpected

Is variable assignment handled differently in the shell than on the command line?

Upvotes: 0

Views: 132

Answers (1)

Nate Hekman
Nate Hekman

Reputation: 6657

Different shells handle commands differently. Your script is a bash script (as identified on the first line #!/bin/bash), therefore it needs to be run by bash, not sh.

bash rename.sh

Upvotes: 2

Related Questions