Agregar valor de variable a la expresión

Agregar valor de variable a la expresión

Estoy intentando convertir una fecha futura en un número de época en Ubuntu Mate 20.04.

Entonces decido escribir este código:

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

Las dos primeras líneas funcionan bien, pero no obtengo nada epochNum=.

¿Está bien escribir otra variable dentro $(date)como la que tengo? Si no, ¿cómo puedo hacer que esto funcione?

También lo intenté endDate=$(date +"%b %_d %Y" -d "+$daysAmount days" +%s)pero tampoco funcionó.

Respuesta1

Puede ejecutar comandos con una ubicación temporal. Esto debería resolver tu problema:

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

Respuesta2

Consigue que funcione.

Verifique el idioma de su fecha antes de convertir al número de época. Si el nombre de la montura es diferente del alfabeto estadounidense, como en el ejemplo del comando "fecha" aquí:

1.11.2021 (пн) 14:47:59 EET

La conversión no funcionará.

En una máquina diferente donde "fecha" se muestra así (alfabeto estadounidense):

Mon Nov  1 14:47:45 EET 2021

el código estaba funcionando perfectamente bien


Para ver un ejemplo práctico en máquinas con diferentes idiomas, consulte: https://unix.stackexchange.com/a/675661/499362

información relacionada