So arbeiten Sie mit Datum und Uhrzeit in Bash mit dem Befehl date
Date Command ist ein externes Bash-Programm, mit dem Datum und Uhrzeit des Systems eingestellt oder angezeigt werden können. Es bietet auch mehrere Formatierungsoptionen. Der Befehl Date ist standardmäßig in allen Linux-Distributionen installiert.
$ which date
type -a date
Geben Sie den Befehl date in das Terminal ein, um das aktuelle Datum und die aktuelle Uhrzeit anzuzeigen.
$ date
Datum und Uhrzeit des Linux-Systems ändern
Mit dem Datumsbefehl können das Systemdatum, die Uhrzeit und die Zeitzone geändert werden und die Änderung muss mit der Hardware-Uhr synchronisiert werden.
$ date --set="Thu Nov 12 13:06:59 IST 2020"
hwclock --systohc
Formatierungsoptionen
Ein guter Ort, um die Liste der Formatierungsoptionen zu erhalten, ist die Manpage.
$ man date
Sehen wir uns einige der gebräuchlichsten Formatierungsoptionen an, die wir verwenden werden.
- Um die Formatierung anzuwenden, verwenden Sie "+" gefolgt von "Formatter".
- Um eine Liste der Formatierungsoptionen für GNU\LINUX zu erhalten, werfen Sie einen Blick auf die verlinkte Manpage.
- Um eine Liste der Formatierungsoptionen für BSD zu erhalten, werfen Sie einen Blick auf die verlinkte Man-Seite.
Die beiden wichtigen Teile des Datumsbefehls sind die Verwendung der Optionen Format +% und –date.
Wenden wir nun eine Formatierung auf den Datumsbefehl an. Um die Formatierung anzuwenden, fügen Sie das Pluszeichen (+) gefolgt von %Formatierer hinzu, wie in den Beispielen gezeigt.
Behandlung von Daten unter Linux
Werfen wir einen Blick darauf, wie man datumsbezogene Formatierer in einem einfachen Shell-Skript namens 'date.sh' verwendet.
# PRINT YEAR,MONTH,DAY AND DATE...
echo "We are in the year = $(date +%Y)"
echo "We are in the year = $(date +%y)"
Difference between %Y and %y is %Y will print 4 digits while %y will print the last 2 digits of the year.
echo "We are in the month = $(date +%m)"
echo "We are in the month = $(date +%b)"
echo "We are in the month = $(date +%B)"
Difference between %B and %b is, %B will print full month name while %b will print abbreviated month name.
echo "Current Day of the month = $(date +%d)"
echo "Current Day of the week = $(date +%A)"
echo "Current Day of the week = $(date +%a)"
Difference between %A and %a is, %A will print full Weekday name while %a will print abbreviated weekday name.
Instead of formatting to get the date, we can use %D which will print the date as %m/%d/%y or %F which prints in %Y-%M-%d format.
echo "Date using %D = $(date +%D)"
echo "Date using %F = $(date +%F)"
Bearbeitungszeit unter Linux
Werfen wir einen Blick darauf, wie man zeitbezogene Formatierer in einem einfachen Shell-Skript namens 'time.sh' verwendet.
# PRINT HOURS, MINS, SECONDS, NANO SECONDS
echo Hours = $(date +%H)
echo Minutes = $(date +%M)
echo Seconds = $(date +%S)
echo Nanoseconds = $(date +%N)
echo Epoch Time = $(date +%s)
echo "current time = $(date +%H:%M:%S:%N)"
can also use %T which displays Time in HH:MM:SS format.
echo "current time in 24 hour format = $(date +%T)"
can also use %r to display time in 12 hour format.
echo "current time in 12 hour format = $(date +%r)"
Mit –date oder -d Flag
Mit --date oder -d kann die Flag-Eingabe als String übergeben werden, und der date-Befehl weiß damit intelligent umzugehen.
Sehen wir uns einige Beispiele an, um zu verstehen, wie es funktioniert.
# Print yesterday's date and time.
echo "Yesterday = $(date -d "Yesterday")"
Print Tomorrow date and time.
echo "tomorrow = $(date -d "tomorrow")"
Find what is the date and time before 10 days from now.
echo "Before 10 days = $(date -d "tomorrow -10 days")"
Find last month and next month
echo "Last month = $(date -d "last month" "%B")"
echo "Next month = $(date -d "next month" "%B")"
Find last year and next year
echo "Last Year = $(date -d "last year" "+%Y")"
echo "Next Year = $(date -d "next year" "+%Y")"
Forecast the weekday
echo "2 days away from today and it comes on weekdays? = $(date -d "Today +2 days" "+%A")
Allgemeine Vorgänge
Berechnen Sie die Anzahl der Tage zwischen 2 angegebenen Daten.
$ echo $(( ( $(date -d "2020-11-10" "+%s") - $(date -d "2020-11-01" "+%s") ) / 86400))
Finden Sie heraus, dass das angegebene Jahr ein Schaltjahr ist oder nicht.
$ for y in {2000..2020}; do date -d $y-02-29 &>/dev/null && echo $y is leap year; done
Zuweisen der Ausgabe des Befehls date zu einer Variablen.
$ TODAY=$(date +%Y-%m-%d)
OR
TODAY1=$(date +%F)
echo $TODAY
echo $TODAY1
Erstellen Sie Protokolldateien, in denen das Datum an den Dateinamen angehängt wird.
Das Hinzufügen von Datum und Uhrzeit beim Erstellen von Protokolldateien, Sicherungs- oder Textdateien ist ein häufiger Vorgang, der uns am häufigsten begegnen wird. Nehmen wir ein Beispiel, um ein Backup zu erstellen, haben wir ein Shell-Skript erstellt.
Dieses Skript erstellt eine Sicherung von 00:00 bis 23:59 Uhr und wird täglich um 00:00 Uhr des nächsten Tages ausgeführt. Wir möchten Protokolldateien mit dem Datumsformat von gestern erstellen.
CUSTOM_FORMAT=$(date --date "Yesterday" "+%d-%y-%H:%M")
LOG_FILE=/var/log/custom_application/application_${CUSTOM_FORMAT}.log
echo "Script started" >> ${LOG_FILE}
...
CODE BLOCKS
...
echo "Script completed" >> ${LOG_FILE}
Das war's für diesen Artikel. In diesem Artikel haben wir gesehen, wie Sie Datum und Uhrzeit der Bash unter Linux verwenden. Teilen Sie uns Ihr Feedback mit.







