Welcome to WebmasterWorld Guest from

Forum Moderators: bakedjake

Message Too Old, No Replies

Bash conditional syntax error (Mac OS X)

5:50 pm on May 22, 2009 (gmt 0)

5+ Year Member


I'm working on my first Bash conditional and don't understand why Terminal is reporting a particular syntax error. I have plenty of php and javascript experience, so I'm not new to conditionals.

Here's my script:

for user in $(ls /Users)
if [ "$user" != 'administrator' ] ; then
sudo cp -rf /Users/gpillsbu/Library/Preferences/com.apple.dock.plist /Users/$user/Library/Preferences/com.apple.dock.plist
sudo chown -hR $user /Users/$user/Library/Preferences/com.apple.dock.plist

Here's the error:

./Update User Dock.sh: line 7: syntax error near unexpected token `if'
./Update User Dock.sh: line 7: `if [ "$user" != 'administrator' ] ; then'

I've tried several different syntax things like removing the quotes around $user, putting the 'then' statement on its own line, retyping the whole thing, etc.

What is an "unexpected token"?

FWIW, the script has worked fine before I tried to add the conditional.

Any help is appreciated!


3:31 am on Jun 14, 2009 (gmt 0)

10+ Year Member

You need your conditional to be inside your for loop

for user in $(ls /Users)
if [ "$user" != 'administrator' ] ; then
3:42 pm on Jun 15, 2009 (gmt 0)

5+ Year Member


Featured Threads

Hot Threads This Week

Hot Threads This Month