Это вызвано вашим цитированием переменной PURGE
.
В настоящее время вы устанавливаете:
PURGE='purge --min-age'
А затем выполнение${DAYS}
(20d )с переменной PURGE
в его окружении.
Вы, наверное, хотите:
purge=(purge --min-age "$days")
(Массивы — гораздо более безопасный способ хранения аргументов командной строки, чем переменные без кавычек)
Вы бы назвали это так:
rclone "${purge[@]}" "${dest}/old" "$verbose" "$logs"
Примечание. :Для переменных среды следует использовать только имена переменных в верхнем регистре.
Возьмем следующий пример:
$ FOO=bar env | grep FOO
FOO=bar
$ env | grep FOO
$
Мы устанавливаем для переменной FOO
значение bar
, а затем выполняем команду env
с этой переменной в ее окружении.
Вы получаете сообщение об ошибке, поскольку 20d
не является допустимой командой.