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