readv() {
local arg
local -a opts names
for arg ; do
case $arg in
--)
shift
break
;;
-*)
shift
opts[${#opts[@]}]=$arg
;;
*)
break
;;
esac
done
names=("$@")
builtin read "${opts[@]}" "${names[@]}" || return
for name in "${names[@]}" ; do
printf >&2 '%s: %s = %s\n' \
"$FUNCNAME" "$name" "${!name}"
done
}