Adicionando valor de variável na expressão

Adicionando valor de variável na expressão

Estou tentando converter alguma data futura em número de época no Ubuntu Mate 20.04.

Então decido escrever este código:

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

As duas primeiras linhas estão funcionando bem, mas não estou conseguindo nada epochNum=.

Posso escrever outra variável dentro $(date)como eu fiz? Se não, como posso fazer isso funcionar?

Eu também tentei endDate=$(date +"%b %_d %Y" -d "+$daysAmount days" +%s), mas também não funcionou.

Responder1

Você pode executar comandos com um código de idioma temporário. Isso deve resolver seu problema:

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

Responder2

Consiga fazer funcionar.

Verifique o idioma da data antes de converter para o número da época. Se o seu nome da montagem for diferente do alfabeto americano como no exemplo do comando "data" aqui:

1.11.2021 (пн) 14:47:59 EET

A conversão não funcionará.

Em uma máquina diferente onde "data" aparece assim (alfabeto americano):

Mon Nov  1 14:47:45 EET 2021

o código estava funcionando perfeitamente bem


Para um exemplo prático em máquinas com linguagens diferentes, consulte: https://unix.stackexchange.com/a/675661/499362

informação relacionada