Похоже, у вас есть фундаментальное недопонимание разделения и цитирования. Когда вы присваиваете переменную $now
, вы выполняете следующую команду в подстановке команд:
date --date="4 hour ago" +%Y-%m-%d %T
Это приведет к появлению дополнительного операнда (%T
). Аргументы этой команды разбиты следующим образом:
--date="4 hour ago" # Optional argument
+%Y-%m-%d # Output format
%T # Extra operand
Сгруппируйте выходной формат с кавычками, чтобы исправить это:
date --date="4 hour ago" '+%Y-%m-%d %T'
# With the variable assignment
now=$(date --date="4 hour ago" '+%Y-%m-%d %T')
Ваша команда wp
также страдает от той же проблемы в аргументе date_query
. (Я собираюсь предположить, что звездочки были попыткой разметки внутри блока кода.) Аргумент выглядит следующим образом:
--date_query='after'$now
Если мы предположим, что значение $now
равно 2020- 02-24 07:00:00, аргументы будут разделены следующим образом:
--date_query=after2020-02-24
07:00:00
Вам нужно будет процитировать это, чтобы избежать разделения. Для простоты я бы предложил использовать двойные кавычки во всей строке (я также добавил пробел после слова после):
"--date_query=after $now"
Редактировать: В будущем попробуйте использовать shellcheck. net, или вы можете загрузить локальную версию на свой компьютер. Shellcheck поймал бы эту ошибку за вас.