diff --git a/sh/list.sh b/sh/list.sh new file mode 100644 index 0000000..478e606 --- /dev/null +++ b/sh/list.sh @@ -0,0 +1,26 @@ +# 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}" +}