mirror of https://github.com/tLDP/LDP
51 lines
1.3 KiB
Bash
51 lines
1.3 KiB
Bash
#!/bin/bash4
|
|
# fetch_address-2.sh
|
|
# A more elaborate version of fetch_address.sh.
|
|
|
|
SUCCESS=0
|
|
E_DB=99 # Error code for missing entry.
|
|
|
|
declare -A address
|
|
# -A option declares associative array.
|
|
|
|
|
|
store_address ()
|
|
{
|
|
address[$1]="$2"
|
|
return $?
|
|
}
|
|
|
|
|
|
fetch_address ()
|
|
{
|
|
if [[ -z "${address[$1]}" ]]
|
|
then
|
|
echo "$1's address is not in database."
|
|
return $E_DB
|
|
fi
|
|
|
|
echo "$1's address is ${address[$1]}."
|
|
return $?
|
|
}
|
|
|
|
|
|
store_address "Lucas Fayne" "414 W. 13th Ave., Baltimore, MD 21236"
|
|
store_address "Arvid Boyce" "202 E. 3rd St., New York, NY 10009"
|
|
store_address "Velma Winston" "1854 Vermont Ave, Los Angeles, CA 90023"
|
|
# Exercise:
|
|
# Rewrite the above store_address calls to read data from a file,
|
|
#+ then assign field 1 to name, field 2 to address in the array.
|
|
# Each line in the file would have a format corresponding to the above.
|
|
# Use a while-read loop to read from file, sed or awk to parse the fields.
|
|
|
|
fetch_address "Lucas Fayne"
|
|
# Lucas Fayne's address is 414 W. 13th Ave., Baltimore, MD 21236.
|
|
fetch_address "Velma Winston"
|
|
# Velma Winston's address is 1854 Vermont Ave, Los Angeles, CA 90023.
|
|
fetch_address "Arvid Boyce"
|
|
# Arvid Boyce's address is 202 E. 3rd St., New York, NY 10009.
|
|
fetch_address "Bozo Bozeman"
|
|
# Bozo Bozeman's address is not in database.
|
|
|
|
exit $? # In this case, exit code = 99, since that is function return.
|