function setPath () { if (( $# == 0 )); then echo "Usage: $0 VAR [PATH, ...]" >&2 return 1 fi local -r var="$1" local paths=("${@:2}") case ${#paths[@]} in 0) unset $var;; 1) export $var="$paths";; *) export $var="${paths[0]}" local path for path in "${paths[@]:1}"; do local val=$(eval echo \$$var) export $var="$val:$path" done esac # THINKME: Special case for PATH: we prepend "$prefix/bin" to it. if [[ $var = "PATH" ]]; then PATH="$prefix/bin:$PATH" fi }