2013-12-10 20 views
24

Ich mag die Variable date-today auf das aktuelle Datum einzustellen und date_dir zum gestrigen Datum, sowohl im Format yyyy-mm-dd.Wie setze ich eine Variable auf das aktuelle Datum und das Datum-1 in Linux?

Ich tue dies:

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

Ich bin verwirrt, wie Sie schaffte es, genau an dem Punkt festzustecken, den Sie getan haben. Sie haben das Datum in einem bestimmten Format abgerufen, aber nicht im gewünschten Format. Sie haben es geschafft, die Ausgabe in eine Variable zu speichern - aber nicht die gewünschte Variable. Wie haben Sie den Code unter „Ich tue dies“ zu schreiben, und wie kommen Sie nicht das bisschen zusätzliche Arbeit von zwicken kann es tun, was Sie brauchen? – ruakh

+0

@ruakh: eigentlich ist es nicht ist dispalaying die $ d Variable, warum, und ich bin sehr neu in diesem Bash Scripting –

+0

Das Skript, das Sie auf dem Laufenden habe * tut * print '$ d'. Was lässt dich sagen, dass es nicht so ist? – ruakh

Antwort

45

können Sie versuchen:

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

EDIT: Changed y Y für 4-stelliges Datum des QuantumFools Kommentar.

+0

Eigentlich, wenn das Jahr soll als vier Zeichen lang sein (dh 2016) erscheint, dann% Y sollte anstelle von% y verwendet werden (die 16 zurückkehren werden mit den 20 abgeschnitten) – QuantumFool

1

Sie sollten man date erste

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

Ich möchte es auf eine Variable festlegen, wie das geht. Ich erstelle eine Bash-Skript –

+0

ich möchte Ihnen auch sagen, dass es date +% Y-% m-% d '2013-12-09' date +% Y-% m-% d -d gestern Kommissionierung Kommissionierung '2013-12-09' –

2

einfach:

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

Sie können auch das kürzere Format verwenden

Aus der Manpage:

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

Beispiel:

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