Sie möchten wissen, wie viele Tage es bis zu einem wichtigen Ereignis sind? Lassen Sie sich von Linux Bash und dem Datumsbefehl helfen! Da ein wichtiger Feiertag vor der Tür steht, benötigen Sie möglicherweise eine Erinnerung daran, wie viel Zeit Sie für die Vorbereitung haben. Glücklicherweise kann Ihnen der Datumsbefehl dabei sehr helfen. In diesem Beitrag sehen wir uns an, wie Datums- und Bash-Skripte Ihnen mitteilen können, wie viele Tage zwischen dem heutigen Tag und dem erwarteten Ereignis liegen. Zunächst ein paar Tipps, bevor wir fortfahren. Die Option %j des Datumsbefehls zeigt das aktuelle Datum als Zahl zwischen 1 und 366 an. Wie zu erwarten wird der 1. Januar als 1 und der 31. Dezember als 365 oder 366 angezeigt, je nachdem, ob es ein Schaltjahr ist. Versuchen Sie es weiter. Sie sollten ungefähr Folgendes sehen: $ Datum +%j 339 Sie können den Tag des Jahres jedoch als Zahl abrufen, indem Sie den Datumsbefehl wie folgt verwenden: $ date -d "18. März" +%j 077 Beachten Sie, dass der obige Befehl Ihnen das aktuelle Jahresdatum anzeigt, auch wenn dieses Datum in der Vergangenheit liegt. Sie können dies jedoch beheben, indem Sie dem Befehl das Jahr hinzufügen: $ date -d "29. April" +%j 119 $ date -d "29. April 2020" +%j 120 In einem Schaltjahr hätte das Jahr bis zum 29. April 120 Tage statt 119 Tage. Wenn Sie die Tage bis Weihnachten herunterzählen möchten, ohne Fingerabdrücke in Ihrem Kalender zu hinterlassen, können Sie dieses Skript verwenden: #!/bin/sh XMAS=`date -d "25. Dez" +%j` HEUTE=`Datum +%j` TAGE=$(($XMAS - $HEUTE)) Fall $DAYS in 0) echo "Heute ist es! Frohe Weihnachten!";; [0-9]*) echo "$DAYS verbleibende Tage";; -[0-9]*) echo "Ups, das hast du verpasst";; esac In diesem Skript nehmen wir den 25. Dezember und das heutige Datum und subtrahieren sie dann. Bei einem positiven Ergebnis zeigen wir die Anzahl der verbleibenden Tage an. Wenn der Wert Null ist, wird die Nachricht „Frohe Weihnachten“ versendet. Wenn der Wert negativ ist, teilen Sie der Person, die das Skript ausführt, einfach mit, dass sie die Feiertage verpasst. Vielleicht waren sie süchtig nach Eierlikör. Die Case-Anweisung besteht aus Anweisungen, die zum Drucken von Informationen verwendet werden, wenn die verbleibende Zeit gleich 0 oder einer beliebigen Zahl oder einer Zahl ist, die mit einem Minuszeichen beginnt (d. h. in der Vergangenheit liegt). Der gleiche Ansatz kann für jedes Datum verwendet werden, auf das sich die Leute konzentrieren möchten. Wir können die Person, die das Skript ausführt, bitten, ein Datum anzugeben und ihr dann mitzuteilen, wie viele Tage zwischen jetzt und diesem Datum verbleiben. Das Skript lautet wie folgt. #!/bin/sh echo -n "Geben Sie das Datum der Veranstaltung ein (z. B. 6. Juni): " dt lesen EREIGNIS=`Datum -d "$dt" +%j` HEUTE=`Datum +%j` TAGE=`Ausdruck $EVENT - $TODAY` Fall $DAYS in 0) echo "Es ist heute!";; [0-9]*) echo "$DAYS verbleibende Tage";; -[0-9]*) echo "Ups, das hast du verpasst";; esac Bei diesem Skript treten jedoch Probleme auf: Wenn jemand, der es ausführt, wissen möchte, wie viele Tage bis zu diesem besonderen Tag im folgenden Jahr verbleiben, wird er enttäuscht sein. Auch wenn bei der Datumseingabe das Jahr angegeben wird, gibt Die Anzahl der Tage zwischen dem heutigen Tag und einem bestimmten Datum in einem bestimmten Jahr zu berechnen, kann etwas knifflig sein. Sie müssen alle dazwischenliegenden Jahre einbeziehen und die Schaltjahre beachten. Unix-Epochenzeit verwenden Eine andere Möglichkeit, die Anzahl der Tage zwischen jetzt und einem bestimmten Datum zu berechnen, besteht darin, die Art und Weise auszunutzen, wie Unix-Systeme Daten speichern. Dies lässt sich leicht bewerkstelligen, indem wir die Anzahl der Sekunden seit dem 1. Januar 1970 in die Anzahl der Tage umrechnen, wie im folgenden Skript gezeigt: #!/bin/bash echo -n "Geben Sie das Zieldatum ein (z. B. 18. März 2021)> " Zieldatum lesen heute = `echo $(($(date --utc --date "$1" +%s)/86400))` Ziel = `echo $(($(Datum --utc --date "$target_date" +%s)/86400))` Tage=`Ausdruck $Ziel - $Heute` echo "$days Tage bis $target_date" Zur Erklärung: 86400 ist die Anzahl der Sekunden eines Tages. Teilen Sie diese Zahl durch die Anzahl der Sekunden seit dem Beginn der Unix-Epoche, um die Anzahl der Tage zu erhalten. $ ./Countdown Geben Sie das Zieldatum ein (z. B. 18. März 2021)> 18. März 2020 104 Tage bis 18. März 2020 Zusammenfassen Oben ist die vom Editor eingeführte Methode zur Verwendung von Bash zum Herunterzählen des Datums. Ich hoffe, es wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Binäre Installation von MySQL 5.7.23 unter CentOS7
>>: Offlineinstallation von Centos7.2 mysql5.7.18.tar.gz
Diese Datenbankabfrageanweisung ist eine von 50 D...
Inhaltsverzeichnis Vorwort Zusammenfassung der Au...
Inhaltsverzeichnis Anwendungsszenario Ideen Proje...
Umsetzungseffekt: 1. count(1) und count(*) Wenn d...
Wenn Sie Dateien zwischen Windows und Linux übert...
Der erste Punkt ist, dass Menschen die Semantik vo...
Als Backend-Programmierer muss ich manchmal an Fr...
In diesem Artikelbeispiel wird der spezifische Co...
In diesem Artikel wird der spezifische Code des V...
1. Laden Sie das Pip-Installationspaket entsprech...
Pseudoelemente und Pseudoklassen Apropos, schauen...
Betriebsumgebung: MAC Docker-Version: Docker vers...
1. Verschachteltes Routing wird auch als Sub-Rout...
Laden Sie das MySQL-Installationspaket herunter. ...
In einem aktuellen Projekt musste ich die Funktio...