#!/usr/bin/env bash
# set up some test data
rundate ="180618"
rundate1 ="180820"
rundate2 ="Values With Spaces Work Too"
# If we know all values are numeric, we can use a regular indexed array
# otherwise, the below would need to be ''declare -A alld=( )''
alld =( ) # initialize an array
for v in "${!rundate@} " ; do # using @ instead of * avoids IFS-related bugs
alld[ ${v#rundate} ] =${!v} # populate the associative array
done
# print our results
printf 'Full array definition:\n '
declare -p alld # emits code that, if run, will redefine the array
echo ; echo "Indexes only:"
printf ' - %s\n' "${!alld[@]} " # "${!varname[@]}" expands to the list of keys
echo ; echo "Values only:"
printf ' - %s\n' "${alld[@]} " # "${varname[@]}" expands to the list of values
IyEvdXNyL2Jpbi9lbnYgYmFzaAoKIyBzZXQgdXAgc29tZSB0ZXN0IGRhdGEKcnVuZGF0ZT0iMTgwNjE4IgpydW5kYXRlMT0iMTgwODIwIgpydW5kYXRlMj0iVmFsdWVzIFdpdGggU3BhY2VzIFdvcmsgVG9vIgoKIyBJZiB3ZSBrbm93IGFsbCB2YWx1ZXMgYXJlIG51bWVyaWMsIHdlIGNhbiB1c2UgYSByZWd1bGFyIGluZGV4ZWQgYXJyYXkKIyBvdGhlcndpc2UsIHRoZSBiZWxvdyB3b3VsZCBuZWVkIHRvIGJlICcnZGVjbGFyZSAtQSBhbGxkPSggKScnCmFsbGQ9KCApICAgICAgICAgICAgICAgICAgICAgICAjIGluaXRpYWxpemUgYW4gYXJyYXkKZm9yIHYgaW4gIiR7IXJ1bmRhdGVAfSI7IGRvICAgICMgdXNpbmcgQCBpbnN0ZWFkIG9mICogYXZvaWRzIElGUy1yZWxhdGVkIGJ1Z3MKICBhbGxkWyR7diNydW5kYXRlfV09JHshdn0gICAgICMgcG9wdWxhdGUgdGhlIGFzc29jaWF0aXZlIGFycmF5CmRvbmUKCiMgcHJpbnQgb3VyIHJlc3VsdHMKcHJpbnRmICdGdWxsIGFycmF5IGRlZmluaXRpb246XG4gICAnCmRlY2xhcmUgLXAgYWxsZCAgICAgICAgICAgICAgICAgIyBlbWl0cyBjb2RlIHRoYXQsIGlmIHJ1biwgd2lsbCByZWRlZmluZSB0aGUgYXJyYXkKZWNobzsgZWNobyAiSW5kZXhlcyBvbmx5OiIKcHJpbnRmICcgLSAlc1xuJyAiJHshYWxsZFtAXX0iICAjICIkeyF2YXJuYW1lW0BdfSIgZXhwYW5kcyB0byB0aGUgbGlzdCBvZiBrZXlzCmVjaG87IGVjaG8gIlZhbHVlcyBvbmx5OiIKcHJpbnRmICcgLSAlc1xuJyAiJHthbGxkW0BdfSIgICAjICIke3Zhcm5hbWVbQF19IiBleHBhbmRzIHRvIHRoZSBsaXN0IG9mIHZhbHVlcw==