last_log_date=$(date -d '${str_last_log_date}' +%s)
Следует обновить до (удалить одинарные кавычки):
last_log_date=$(date -d ${str_last_log_date} +%s)
Чтобы создать новую переменную массива, присвойте значения старого массива новому массиву следующим образом:
my_databases=(value1 value2 value3)
new_array=("${my_databases[@]}")
Если вы используете
new_array=$my_databases
новая переменная не будет массивом (если вы не используетеdeclare -a new_array=$my_databases
)и $my_databases
расширяется только до первого значения массива.
Я предполагаю, что вы хотите создать копию массива. Затем используйте ответ @Freddy.
Если вы хотите создать ссылку на те же данные, в последних версиях bash есть «namerefs»:
$ my_databases=(value1 value2 value3)
$ declare -n new_array=my_databases
Тогда:
$ for i in "${!new_array[@]}"; do printf "%d\t%s\n" $i "${new_array[i]}"; done
0 value1
1 value2
2 value3
но если изменить первый массив, изменения будут видны в "новом":
$ my_databases[2]="updated value 3"
$ for i in "${!new_array[@]}"; do printf "%d\t%s\n" $i "${new_array[i]}"; done
0 value1
1 value2
2 updated value 3