Добавление значения переменной в выражение

Добавление значения переменной в выражение

Я пытаюсь преобразовать будущую дату в номер эпохи в Ubuntu Mate 20.04.

Поэтому я решил написать этот код:

daysAmount="10"   
endDate=$(date +"%b %_d %Y" -d "+$daysAmount days")   
epochNum=$(date -d "$endDate" +%s)  

Первые две строки работают хорошо, но у меня ничего не получается epochNum=.

Можно ли написать еще одну переменную внутри, $(date)как у меня? Если нет, как мне заставить это работать?

Я тоже пробовал, endDate=$(date +"%b %_d %Y" -d "+$daysAmount days" +%s)но это тоже не сработало.

решение1

Вы можете запускать команды с временной локалью. Это должно решить вашу проблему:

daysAmount="10"   
endDate=$(LC_ALL=C date +"%b %_d %Y" -d "+$daysAmount days")   
epochNum=$(LC_ALL=C date -d "$endDate" +%s)  

решение2

Постарайтесь заставить это работать.

Проверьте язык даты перед конвертацией в номер эпохи. Если имя вашего монтировки отличается от американского алфавита, как в примере команды "date" здесь:

1.11.2021 (пн) 14:47:59 EET

Конвертация не сработает.

В другой машине, где «дата» отображается так (американский алфавит):

Mon Nov  1 14:47:45 EET 2021

код работал отлично


Рабочий пример на машинах с разными языками см. здесь: https://unix.stackexchange.com/a/675661/499362

Связанный контент