bash - yesterday - man date




JJJJ-MM-TT-Format Datum in Shell-Skript (6)

Ich habe versucht, $(date) in meinem Bash Shell-Skript verwenden, aber ich möchte das Datum im Format YYYY-MM-DD. Wie bekomme ich das?


In Bash:

Erhalten Jahr-Monat-Tag von date

DATE=`date +%Y-%m-%d`

Erhalten Jahr-Monat-Tag Stunde: Minute: Sekunde von date

DATE=`date '+%Y-%m-%d %H:%M:%S'`

Andere verfügbare Datumsformate können auf den Seiten des Datumsmanagers eingesehen werden:

man date

Mit der letzten Bash (Version ≥ 4.2) können Sie den eingebauten Printf mit dem Format-Modifikator %(strftime_format)T :

$ printf '%(%Y-%m-%d)T\n' -1  # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1  # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1  # Capture as var $date

Sie suchen nach ISO 8601 Standard-Datumsformat, wenn Sie also ein GNU-Datum haben (oder einen Datumsbefehl, der moderner ist als 1988), tun Sie einfach: $(date -I)


Versuchen Sie: $(date +%F)


#!/bin/bash -e

x='2018-01-18 10:00:00'
a=$(date -d "$x")
b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S")
c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S")
#date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S"

echo Entered Date is $x
echo Second Date is $b
echo Third Date is $c

Hier ist x das verwendete Beispieldatum und dann zeigt das Beispiel sowohl die Formatierung von Daten als auch das Abrufen von Daten 10 Minuten mehr als das aktuelle Datum an.


date -d '1 hour ago' '+%Y-%m-%d'

Die Ausgabe wäre 2015-06-14 .





scripting