Como fazer atribuição para minha variável?

0

Eu quero gerar 5 arquivos com os últimos cinco dias como um registro de data no nome do arquivo. Como faço para capturar o comando date como mostrado na minha variável FILE_DATE ?

for i in {1..5};
do 
#FILE_DATE=$(date --date="$i days ago" + "%m%d%Y")  # Yields Try 'date --help' for more information
#FILE_DATE=(date --date="$i days ago" + "%m%d%Y")   # Yields Foobardate
#FILE_DATE='date --date="$i days ago" + "%m%d%Y"'   # Yields Try 'date --help' for more information
#FILE_DATE="date --date="$i days ago" + "%m%d%Y""   # Yields days command not found

echo "Foobar$FILE_DATE"
done

Saída desejada

Foobar07172017

Foobar07162017

Foobar07152017

Foobar07142017

Foobar07132017

    
por zundarz 18.07.2017 / 17:33

1 resposta

1

Qual sistema operacional você está usando? Isso funcionou para mim no CentOS 7, mas recebi um erro diferente de você sem as aspas:

#!/bin/bash
#
for i in {1..5}; do
file_date=$(date --date="$i days ago" "+ %m%d%Y") # "+ %m%d%Y" Creates a space before the date
echo "Foobar${file_date:1}" # Removes space before the date
done

OR

#!/bin/bash
#
for i in {1..5}; do
file_date=$(date --date="$i days ago" "+%m%d%Y")
echo "Foobar$file_date"
done

Ambos produzirão o resultado desejado:

[root@JBLGSMR002 ~]# ./test.sh
Foobar07172017
Foobar07162017
Foobar07152017
Foobar07142017
Foobar07132017
    
por 18.07.2017 / 17:40

Tags