Creating an array out of users: shell script

I want to create a shell script for a menu selection consisting of users defined on the machine. To an administrator having the privileges, the selection menu will look as follows:

Select the user you want to define the variables for:
1) my-username-1
2) my-username-2
etc

Then there would be a read statement, such as the following:

read $OPTION

of which #OPTION holds the name of the user for whom the task should be performed.
A start would be to use the following:

cat /etc/passwd | grep home | cut -d : -f 1

How do I turn this into an array or at least something that allows the creation of a selection menu?
Can I reasonably assume that all defined users have a directory in /usr/home?

One option:

USERS=("" $(awk -F: '{print $1}' /etc/passwd))

echo ${USERS[@]} | awk '{print ++C ") " $1}' RS=" "

printf "Enter a number:  "
read OPTION

echo You chose ${USERS[$OPTION]}

Or you could use select, for example:

USERS=("" $(awk -F: '{print $1}' /etc/passwd))

PS3="Select a user: "
select USER in ${USERS[@]}; do
 break
done

echo You chose $USER

(you need to modify the awk to remove blank lines, comments and system users)

Thank you very much for your response.
In both cases I am getting the following error message:

./test-selection-menu.sh: 1: Syntax error: word unexpected (expecting ")")

The following line:

$(awk -F: '{print $1}' /etc/passwd)

already generates the list of users on its own, so what does the first part of USERS do?

("" 

I looked into selection menus a bit more and I see PS3 a lot in discussions about this. Is PS3 a reserved acronym?

You don't need the "" with the select version, actually.

It is used in the first version because arrays are zero-based (the first element would be index 0). The "" was to use up element 0, so that the usernames would begin at index 1.

For this problem, I would probably use the select approach.

What shell do you use?

Thank you again for your response.
I am using /bin/csh under FreeBSD 8.1 x64.
I have tried many variations of the select script, but I either get an error as such:

${USERSx[...}: Bad substitution

or as such:

Command not found

Could this have to do with the shell?
Also, I am assuming no #!/usr/bin/sh or such directive is needed as the first line?

I'd say it has everything to do with the shell. Why are you using that?

You can eliminate the array totally, if using select, but as I don't think csh has a select, that's neither here, nor there!

You should always put "#!/usr/bin/sh or such directive" in the first line. Just preferably not #!/bin/csh!!

I am using the csh, because it is part of the standard install of FreeBSD 8.1 x64. This script happens to be tested on a sandbox machine that is reinstalled every few days.
I currently have the following script ("x" appended to be sure that variables do not interfere with reserved words):

#!/usr/bin/sh
USERSx=$(awk -F: '{print $1}' /etc/passwd)
PS3="Select a user: "
select USERx in ${USERSx[@]}; do
 break
done
echo You chose $USERx

This leads to a Command not found error, regardless of whether I use eval, `` quotes, extra parentheses etc.

It should also have a bourne shell of some sort installed as standard to be called UNIX at all.

csh programming is strongly recommended against for reasons including, but definitely not limited to these:
Csh Programming Considered Harmful
http://www.grymoire.com/Unix/CshTop10.txt
Csh

...but the most important reason is that programming in CSH is an exercise in masochism. The pituful ad-hoc throws errors that almost never have anything to do with the actual mistake made.