ubuntuusers.de

Wie kann ich die Zeit aus `date` extrahieren?

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

jo.angel

Anmeldungsdatum:
1. November 2006

Beiträge: 171

Hallihallö,

Ich schreibe ein shellscript, dass mir mit festival speech synthesis alle X Minuten die Zeit ansagt.
ich würde gerne die Ausgabe von date in eine Variable schreiben, aber so, dass nur die reine Zeit übrig bleibt.

normal sieht das ja in etwa so aus:

echo date
Do 24. Jan 09:18:38 CET 2008

Und so stelle ich mir das vor:

VAR=.....date......
Das Resultat sollte sein

echo "Die Zeit:"
echo $VAR

Die Zeit:
12:22

Für einen netten kleinen Einzeiler, der diesen Job erledigt, wäre ich sehr dankbar

basslord

Anmeldungsdatum:
21. Oktober 2005

Beiträge: 63

Hallöchen,

so in etwa?

echo "Die Zeit:" && echo $(date "+%k:%M")

Gruß
Rodge

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

date +%H:%M

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

date +'%H:%M'

apropos man date kennst Du?

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

kennst Du überhaupt

man man


Shell/man

jo.angel

(Themenstarter)

Anmeldungsdatum:
1. November 2006

Beiträge: 171

comm_a_nder hat geschrieben:

date +'%H:%M'

apropos man date kennst Du?

Vielen Dank, das hilft mir wirklich weiter

Und vielen Dank auch für den Hinweis auf die manpages, die ich sonst immer intensiv bemühe.
Irgendwie bin ich auf die Idee nicht gekommen. Habe aber trotzdem bestimmt 10 Minuten mit der Recherche verbracht.
Bin wahrscheinlich einfach zu doof...

war irgendwie auf dem Trichter dass man das mit "sed" oder so machen muss

Danke an alle die mir geholfen haben

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Und dann gibt's da noch saytime, das etwas ähnliches macht:

apt-cache search saytime
saytime - speaks the current time through your sound card

jo.angel

(Themenstarter)

Anmeldungsdatum:
1. November 2006

Beiträge: 171

user unknown hat geschrieben:

Und dann gibt's da noch saytime, das etwas ähnliches macht:

apt-cache search saytime
saytime - speaks the current time through your sound card

Tja und mein Skript sieht so aus:
(setzt voraus, dass die Pakete FESTIVAL und SOCKS auf dem System sind)
Man kann periodisch einstellen wie oft die Zeit angesagt werden soll.

#!/bin/bash

######         WHAT THIS SCRIPT DOES:
######         AUDIO-ANNOUNCING THE TIME PERIODICALLY BY ROBOT VOICE 
######         Packet  Requirements (dependencies): FESTIVAL, SOCKS

########### PREPARATIONS #############################
touch $HOME/time.txt # creating temporary textfile

########### DEFINING VARIABLES #######################
TEMPTEXT=$HOME/time.txt # temporary textfile
PLAY="play -q -v2" # volume settings

########### DISPLAY #################################
clear
echo "#####################################################"
echo "####----------------robotime---------------------####"
echo "####-------periodical audio time announcer-------####"
echo "#####################################################"
echo "###################  INPUT  #########################"
echo "########## Announcing the time every ...? ###########"
echo "#####################################################"  
echo "#### PERIOD:            >             ENTER:     ####"
echo "#####################################################"
echo "#### 30 seconds         >              30s       ####"
echo "#### 10 minutes         >              10m       ####"
echo "####  1 hour            >               1h       ####"
echo "#####################################################"
echo
########### DEFINING THE PERIOD ######################
read PERIOD
LOPP=$PERIOD
########### CORE: PROCESSING THE JOB #################
while PERIOD=$LOPP
TIME=`date +'%H:%M'` # reads the time in periodically
ANSAGE="The time: $TIME" # what robotime will say
do
######### DISPLAY #################################
clear
echo "#####################################################"
echo "####----------------robotime---------------------####"
echo "####-------periodical audio time announcer-------####"
echo "#####################################################"
echo "###################  INPUT  #########################"
echo "########## Announcing the time every ...? ###########"
echo "#####################################################"  
echo "#### PERIOD:            >             ENTER:     ####"
echo "#####################################################"
echo "#### 30 seconds         >              30s       ####"
echo "#### 10 minutes         >              10m       ####"
echo "####  1 hour            >               1h       ####"
echo "#####################################################"
echo
echo "                   $ANSAGE" #  display announcement to the tty
echo $ANSAGE > $TEMPTEXT # writing announcement in a temporary textfile
text2wave $HOME/time.txt -o /$HOME/time.wav # converting the textfile into wav
$PLAY /$HOME/time.wav # playing the wavfile to announce the time
sleep $PERIOD
done

exit

Schade, jetzt hab ich den thread schon als gelöst markiert war wohl keine so gute Idee

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

Boah. Mach das echo Kram raus 😀
Niemand möchte soviel Text lesen, nur um sich die Zeit ansagen zu lassen!
Benutze 'getopts', siehe 'info getopts' und mahcs über Kommadozeilen-Schalter.

Und eine temporäre Datei legst du mit

TMPFILE=$(tempfile)


an.

jo.angel

(Themenstarter)

Anmeldungsdatum:
1. November 2006

Beiträge: 171

Na ja wie du schon an meiner Fragestellung erkennen kannst bin ich noch recht neu mit der shellskriptprogrammierung.

das skript funktioniert prächtig
um die zeit ansagen zu lassen muss mans auch nicht lesen

zum editieren isses wohl nicht so übersichtlich
das skript ist auch nocjh "under development"

und da werde ich mir die getopts mal genauer ansehen
und das mit dem tempfile ändern

merci

j

Antworten |