Consider using a more modern shell:
#!/bin/bash
# Use an associative array, and map names to numbers
declare -A numbers
numbers=([Joe]=8881235555 [Bob]=8881235556)
echo "Who do you want to text?:(i.e. Joe, Bob, etc)"
read name
echo "What do you want to say?:)"
read quote
# Look up number by name
number=${numbers[$name]}
if [[ $number ]]
then
echo "texting $name ($number) with $quote"
mailx -s "Text Message via email" "$number@txt.att.net" <<< "$quote"
else
echo "Unknown user"
exit 1
fi
If you want to use /bin/sh:
#!/bin/sh
# Prefix the numbers with something
number_Joe=8881235555
number_Bob=8881235556
echo "Who do you want to text?:(i.e. Joe, Bob, etc)"
read name
echo "What do you want to say?:)"
read quote
# Remove any dangerous characters that the user enters
sanitized=$(printf "%s" "$name" | tr -cd 'a-zA-Z')
# Look up by evaluating e.g. "number=$number_Joe"
eval "number=\$number_$sanitized"
if [ "$number" ]
then
echo "texting $name ($number) with $quote"
printf "%s\n" "$quote" | mailx -s "Text Message via email" "$number@txt.att.net"
else
echo "Unknown user"
exit 1
fi