new to bash precisa de ajuda com script de datas

3

Estou aprendendo scripts bash e preciso obter os últimos 30 dias a partir de agora.

Eu sei que é um script idiota, mas de alguma forma estou perdendo alguma coisa.

Eu preciso mostrar os últimos 30 dias, aqui está como eu faço:

#!/bin/bash


for ((i=0 ; i <= 30; i++))
do

z='date --date='-i day'|awk '{print ,}'';

echo $z;

done
    
por Vitalik Jimbei 16.11.2016 / 15:01

1 resposta

4

Você está executando date --date='-i day' , mas deseja usar sua variável $i . Você também precisa de aspas duplas e não simples, para se certificar de que o cariable é expandido. Tente isso:

#!/bin/bash
for ((i=0 ; i <= 30; i++))
do
    z='date --date="-$i day"|awk '{print ,}'';
    echo "$z";
done

E, como você está aprendendo, aqui está uma maneira mais simples:

$ for i in {0..30}; do date -d "-$i days" +'%b %d'; done
Nov 16
Nov 15
Nov 14
Nov 13
Nov 12
Nov 11
Nov 10
Nov 09
Nov 08
Nov 07
Nov 06
Nov 05
Nov 04
Nov 03
Nov 02
Nov 01
Oct 31
Oct 30
Oct 29
Oct 28
Oct 27
Oct 26
Oct 25
Oct 24
Oct 23
Oct 22
Oct 21
Oct 20
Oct 19
Oct 18
Oct 17
    
por terdon 16.11.2016 / 15:08

Tags