2013-12-10 5 views
24

Desidero impostare la variabile date-today alla data corrente e date_dir alla data di ieri, sia nel formato yyyy-mm-dd.Come impostare una variabile per data e data attuali-1 in linux?

sto facendo questo:

#!/bin/bash 
d=`date +%y%m%d%H%M%S` 
echo $d 
+1

Sono confuso come si è riuscito a rimanere bloccato nel punto esatto che hai fatto. Sei riuscito a recuperare la data utilizzando un formato specificato, ma non il formato che desideri. Sei riuscito a salvare l'output su una variabile, ma non sulla variabile che desideri. Come sei riuscito a scrivere il codice sotto "Sto facendo questo", e come mai non puoi fare un po 'di lavoro extra per modificarlo in base alle tue esigenze? – ruakh

+0

@ruakh: in realtà non è l'esposizione della variabile $ d che è il motivo per cui sono molto nuovo in questo script di bash –

+0

Lo script che hai postato * fa * stampa '$ d'. Cosa ti fa dire che non è così? – ruakh

risposta

45

Si può provare:

#!/bin/bash 
d=$(date +%Y-%m-%d) 
echo "$d" 

EDIT: Cambiato y Y per 4 date cifre secondo Il commento di QuantumFool.

+0

In realtà, se l'anno dovrebbe apparire come quattro caratteri (cioè 2016), allora% Y dovrebbe essere usato al posto di% y (che restituirà 16 con il 20 tagliato) – QuantumFool

1

si dovrebbe man date primo

date +%Y-%m-%d 
date +%Y-%m-%d -d yesterday 
+0

voglio impostarlo su una variabile come farlo. Sto creando uno script bash –

+0

Vorrei anche dirti che è la data di prelievo +% Y-% m-% d '2013-12-09' data +% Y-% m-% d -d ieri sta selezionando '2013-12-09' –

2

semplice:

today="$(date '+%Y-%m-%d')" 
yesterday="$(date -d yesterday '+%Y-%m-%d')" 
2

È inoltre possibile utilizzare il formato breve

Dalla pagina man:

%F  full date; same as %Y-%m-%d 

Esempio:

#!/bin/bash 
date_today=$(date +%F) 
date_dir=$(date +%F -d yesterday) 
Problemi correlati