Forum: Linux-Unix Programmierung
Moderatoren: juergen, Martin ConradThema: Shell programmierung - ein char aus einer variablen lesen
Shell programmierung - ein char aus einer variablen lesen
Ordam am 19.06.2010 um 01:06
ich bin Neuling mit der Shellprogrammierung und bisher nur c gewöhnt. Naja ich vermute es gibt eine ganz einfache Lösung für mein Problem und zwar will ich mit einem Shell-Skript ein Datum einlesen und überprüfen.
Das ganze sollte dann im Aufruf etwa so aussehen
$ testprog 19.06.2010
jetzt wollte ich einfach nur an den Wert des z.B. Tages kommen, aber mir ist nicht klar wie ich auf einzelne char's des Arguments rankomme.
Mein Ansatz war das ich das Argument als Variable anlege (mit var=$1), und dann auf die einzelnen char's zugreifen kann. Dachte Variablen werden als Strings interpretiert und ich könnte dann mit sowas ähnlichem wie $var[2] oder ${var[2]} an die "9" von "19.06.2010" rankommen.
Dem ist aber nicht so.
Letzt endlich möchte ich das Datum auslesen und mit dem aktuellem vergleichen.
Ich würde mich über eine paar Anregungen freunen, wie ich das Problem angehen kann.
Ordam
Re: Shell programmierung - ein char aus einer variablen lesen
Martin Conrad (webmaster) am 20.06.2010 um 08:46
Kleines Beispiel für die Bash, anhand des Beispiels solltest du auch den Monat rauspflücken können:
dn=20.06.2010
d=${dn%%\.*}
y=${dn##*\.}
Ja, das ist fies, es iost aber logisch aufgebaut, wenn man weiss, dass % und # Operatoren sind, die ein- und mehrfach vorkommen dürfen. Variablenersetzung und bash sind die passenden Suchbegriffe.
Bis denne
Martin
--
0xC0FFEE
Re: Shell programmierung - ein char aus einer variablen lesen
Ordam am 20.06.2010 um 11:36
ich hatte vorher die Bourne Shell mehr unbewusst benutzt die Bash scheint mir komfortabler.
Vielen dank für die Idee mit den Operatoren, werde ich nochmal verfolgen.
Ich bin das Problem jetzt doch etwas anders angegangen
eingabe=$1
tag=${eingabe:0:2}
trennzeichen1=${eingabe:2:1}
monat=${eingabe:3:2}
trennzeichen2=${eingabe:5:1}
jahr=${eingabe:6:4}
aber vielen Dank für die Anregungen.
Ich habe jetzt nur halbherzig auf die Unterschiede zwischen bash und sh gegooglet, aber die Ergebnisse waren nicht so befriedigent.
Gibt es irgendwo ein gutes Tutorial, wo die Unterschiede herrausgearbeitet werden? Oder ist das eher ein bücherfüllendes Thema?
MfG
Ordam
