# list RWX_LIST_SEP="$(printf "\037")" RWX_LIST_SEP="⋅" rwx_list_add() { local name="${1}" shift local eval item text eval="printf \"\${${name}}\"" text="$(eval "${eval}")" for item; do [ -n "${text}" ] && text="${text}${RWX_LIST_SEP}" text="${text}${item}" done eval="${name}=\"${text}\"" eval "${eval}" } rwx_list_test() { local list rwx_list_add list "a" "b" "c" rwx_list_add list "x" "y" "z" echo "${list}" }