Tux L i n u x * G u i d e

v o n * I n g o * B l e c h s c h m i d t * ( c ) * 2 0 0 1
Tux
|Home|

|Neue Artikel|

|Index|

|Liste|

|Code-Snippets|

|Links|

|Allgemeines|

|Cool Stuff|
Countdown in Shell-Skript
Son Jun 2 10:59:49 MEST 2002
Coutndown Shell date expr

Dieser Artikel stellt einen Countdown, geschrieben in Shell-Skript, vor.

LinuxGuide Druckbare Version
Man-Page
Sourcecode
Verwandte Artikel:

Dateien sortieren
Text2HTML
Shell-Skript-Debugging
Webschnapper in Shell-Skript
Webschnapper (2) in Shell-Skript



      .~.   
      /V\   
     // \\  
    /(   )\ 
     ^`~'^  
     


Hosted at Sorceforge.net
No ePATENTS
Viewable With Any Browser
Burn All GIFs!

# So oder ähnlich könnte der Countdown aussehen
 
Heute ist der 2.Juni.2002 (11:02:13 Uhr).


Bis zum Schuljahresende sind es nur noch

5097693 Sekunden!
84961:33 Minuten:Sekunden!
1416:1:33 Stunden:Minuten:Sekunden!
1416:93 Stunden:Sekunden!
59:93 Tage:Sekunden!
59:1:33 Tage:Minuten:Sekunden!
59:0:1:33 Tage:Stunden:Minuten:Sekunden!
8:3:0:1:33 Wochen:Tage:Stunden:Minuten:Sekunden!
 
 

Es gibt Countdowns für Linux ja wie Sand am Meer, aber dieser ist der Kleinste: Gerade mal 34 Zeilen Shell-Skript. Das Skript kommt ohne Perl und sonstige Bibliotheken aus, und eignet sich daher auch gut für einen alten Laptop mit einem Mini-Linux.
Mit dem folgenden Eintrag in der Crontab bekommt man dann die Restzeit gleich per E-Mail:
# crontab
 
42 10 * * * /pfad/zum/countdown.sh "31 July 2002 11:03:46" "zum Schuljahresende"
 
 

Das Skript, Download:
# countdown.sh
 
#!/bin/bash

destin="$2"
target=`date +%s --date="$1"`
source=`date +%s`

diff=`expr $target - $source`

echo Heute ist der `date +%e.%B.%Y\ \(%r\ Uhr\)`.
echo
echo
echo Bis $destin sind es nur noch
echo


seconds=$diff
min_sec=`expr $diff / 60`:`expr $diff % 60`
ho_mi_s=`expr $diff / 3600`:`expr \( $diff % 3600 \) / 60`:`expr $diff % 60`
hou_sec=`expr $diff / 3600`:`expr $diff % 3600`
day_sec=`expr $diff / 86400`:`expr $diff % 86400`
da_mi_s=`expr $diff / 86400`:`expr \( $diff % 86400 \) / 60`:`expr $diff % 60`
d_h_m_s=`expr $diff / 86400`:`expr \( $diff % 86400 \) / 3600`:`expr \( \( $diff % 86400 \) % 3600 \) / 60`:`expr $diff % 60`
wdh_m_s=`expr $diff / 86400 / 7`:`expr \( $diff / 86400 \) % 7`:`expr \( $diff % 86400 \) / 3600`:`expr \( $diff % 3600 \) / 60`:`expr $diff % 60`

echo $diff Sekunden\!
echo $min_sec Minuten:Sekunden\!
echo $ho_mi_s Stunden:Minuten:Sekunden\!
echo $hou_sec Stunden:Sekunden\!
echo $day_sec Tage:Sekunden\!
echo $da_mi_s Tage:Minuten:Sekunden\!
echo $d_h_m_s Tage:Stunden:Minuten:Sekunden\!
echo $wdh_m_s Wochen:Tage:Stunden:Minuten:Sekunden\!
 
 

Das Skript erwartet als ersten Parameter das Datum in einer für das Kommando date verträglichen From (zum Beispiel "31 July 2002 11:03:46") und als zweiten Paremeter den Namen des Ereignisses samt Artikel (also zum Beispiel "zum Schuljahresende").

Document Informations: Content-Type: text/html; charset=iso-8859-1
Author: Ingo Blechschmidt
Description: LinuxGuide - Dieser Artikel stellt einen Countdown, geschrieben in Shell-Skript, vor.
Keywords: Coutndown, Shell, date, expr, LinuxGuide
Robots: all
Copyright: Copyright (C) 2002 by Ingo Blechschmidt
Date: 2003-06-02T10:59:49+02:00

Stichwortverzeichnis | Neue Artikel | Übersicht | Codesnippets | Links | Copyright | Cool Stuff | Home | Druckbare Version | Manpage | Sourcecode |
Diesen Artikel kritisieren, kommentieren oder ergänzen
Einen Neuen Artikel schreiben

 
This website is distributed under the GNU Free Documentation License .