Expressão de formato de data no BASH ao adicionar dias

0

Estou escrevendo um boletim de data e estou tendo problemas com o formato de data. Talvez eu esteja apenas escrevendo errado, qualquer insite é útil

#!/bin/bash

echo -e "bill date"
read date

      d1=$(date -d  "$date +27 days")
      d2=$(date -d  "$date +45 days" )


echo "$(tput bold setaf 3)Suspension date = $d1" 
echo "$(tput bold)$(tput setaf 1)Termination date = $d2"

O que eu gostaria é que a saída seja: Data de suspensão = seg Nov 6 2017

o que eu recebo é a data de suspensão = seg Nov 6 00:00:00 EST 2017

Eu tentei muitas variações e colocações de + '% a% B% d% Y' e continuo recebendo erros de data inválidos.

bater minha cabeça contra a minha mesa e parede não bateu nada solto até agora.

    
por Amidues 02.11.2017 / 20:09

1 resposta

1

Use uma string de formato de data:

d1="$(date -d "$date +27 days" +"%a %b %d %Y")"

Isso depende inteiramente do usuário inserir um formato que seja analisável por date -d .

    
por 02.11.2017 / 20:17

Tags