Zahlen unter Linux

Anlaufschwierigkeiten? Was ist was? Worum geht's?
schwa226
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Montag 13. Februar 2006, 20:05

Zahlen unter Linux

Beitrag von schwa226 »

Hallo,

ich hoffe hier richtig zu sein! Hab erst vor kurzen mit Linux angefangen und bräuchte etwas Hilfe mit dem Rechnen.

Was bedeutet:
Vari=`expr $Vari \/ 10`

In Vari steht z.B.: 1234567890
Finde einfach nichts brauchbares im Internet.

Oder wie kann ich aus der oberen Zahl nur die letzten 7 Stellen nehmen? 1234567890 -> 4567890
oder
87654321 -> 7654321?

mfg
schwa226
robspr1
Einsteiger
Einsteiger
Beiträge: 203
Registriert: Mittwoch 27. April 2005, 09:37

Beitrag von robspr1 »

Ich nehme an du willst ein script schreiben, oder?

Schau mal hier,
besonders der Abschnitt für expr

Für deine Frage: du könntest dir die Länge (Anzahl der characters) berechnen lassen und dann den sub-string mit der entsprechenden Anzahl ab der entsprechenden Position ausgeben lassen.
just_me
Einsteiger
Einsteiger
Beiträge: 123
Registriert: Montag 28. November 2005, 11:31

Beitrag von just_me »

Es geht auch ohne String Operationen, wenn Du den modulus Operator verwendest:

Probier mal auf der Kommandozeile:
> expr 1234567890 % 10000000
oder
> expr 1234567890 / 1000 % 10000
schwa226
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Montag 13. Februar 2006, 20:05

Beitrag von schwa226 »

Danke für die Hilfe!

Die Methode: expr 1234567890 % 10000000 funktioniert leider nicht mit Zahlen > 2147483648 daher habe ich die expr substr funktion verwendet.

Nun habe ich aber noch andere Kleinigkeiten mit den ich einfach nicht zurecht komme. Muss vorausgeben, dass ich Linux Laie bin und das meine ersten Versuche sind!

Habe auf dem K*ywelt-Board ein Plugin gefunden, dass die Netzwerkgeschwindigkeit wärend der Aufnahme auf dem LCD anzeigt.

Hab nun versucht den graphischen Balken gegen eine Zahl auszutauschen. Das funktioniert auch bis jetzt ganz gut. Es wird im LCD TX: x.x Mbps angezeigt.

Leider ist das Script jetzt recht komplitziert und bei ORF bricht die Aufnahme ab. Zusätzlich schaff ich es einfach nicht mit Komma-Stellen zu rechnen. Eigentlich sollte der Bit Wert 2 mal durch 1024 dividiert werden, aber dann bleibt nur die Einer-Stelle übrig und der Rest ist futsch. Deswegen paßt der Angezeigte Wert nicht 100%ig.

Bin mir sicher, dass mir hier jemand helfen kann und das Script um einiges zu vereinfachen!

Code: Alles auswählen

#!/bin/sh
#Version 1.0.1
#von Alex zur Aufnahmekontrolle auf das LCD geschrieben..../10/2005
# Das Script mit den Rechten 755 nach /var/plugins kopieren und mit "/var/plugins/record-lcd &" aufrufen
# Beenden über "touch /tmp/lcd.stop"
#
# ACHTUNG (Anmerkung von genius777)
# Dieses Script stammt von alex12555 (JtG Board) und wurde von mir lediglich aufs V4 Image angepasst und
# grafisch etwas ueberarbeitet. Die eigentliche Routine stammt von alex! Meine Anerkennung hierfuer!
remotebox="localhost"

wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?lock=1&clear=1"
while [ ! -e /tmp/lcd.stop ]; do
				MiBse1=`ifconfig eth0 | grep "TX bytes" | cut -d ":" -f 3 | cut -d " " -f 1`
		    sleep 2
		    MiBse2=`ifconfig eth0 | grep "TX bytes" | cut -d ":" -f 3 | cut -d " " -f 1`
		    MiBse1_L=`expr length $MiBse1 - 6`
		    MiBse2_L=`expr length $MiBse2 - 6`
		    MiBse1=`expr substr $MiBse1 $MiBse1_L 7`
		    MiBse2=`expr substr $MiBse2 $MiBse2_L 7`
		    MiBse_diff=`expr $MiBse2 - $MiBse1`
		    MiBse_diff=`expr $MiBse_diff / 2`
		    
		    # Überprüfung ob Ergebnis negativ:
			    if [ `expr match $MiBse_diff '-'` != 0 ]; then
			    	MiBse_diff=`expr $MiBse_diff + 10000000`
			    fi
			    
			  # umrechnen auf Bits
		    MiBse_diff=`expr $MiBse_diff \* 8`
		    MiBse_diff=`expr substr $MiBse_diff 1 1`.`expr substr $MiBse_diff 2 1`
    time=`date +%H:%M`
    secs=`date +%S`
    secs=`expr $secs \* 100`
    secs=`expr $secs \/ 60`
    secpos=`expr 10 + $secs`
    #ab hier gehr die Anzeige los...
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?clear=1"
    #als erstes das Netzwerk und Beschriftung
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?xpos=7&ypos=19&size=30&font=2&text= AUFNAHME"
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?xpos=65&ypos=35&size=20&font=2&text=Mbps"
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?xpos=17&ypos=35&size=20&font=2&text= TX:%20$MiBse_diff"
    #wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?rect=7,25,110,35,1,0"
    #wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?rect=7,25,$pos,35,1,1"
    #Uhrzeitanzeige...
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?rect=7,40,110,43,1,0"
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?rect=7,40,$secpos,43,1,1"
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?rect=5,45,73,62,0,0&xpos=7&ypos=60&size=22&font=2&text=$time"
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?xpos=52&ypos=60&size=12&font=2&text=Netzwerkstatus"
    wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?update=1"
    #sleep 1
  done
  rm /tmp/lcd.stop
  wget -q -Y off -O /dev/null "http://$remotebox/control/lcd?lock=0&clear=1&update=1"
nils_e
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Mittwoch 15. März 2006, 12:50

Beitrag von nils_e »

# ACHTUNG (Anmerkung von DOOFMANN)
# Dieses Script stammt von alex12555 (JtG Board) und wurde von mir lediglich aufs V4 Image angepasst und
# grafisch etwas ueberarbeitet. Die eigentliche Routine stammt von alex! Meine Anerkennung hierfuer!
öhm... eigentlich heiße ich g.e.n.i.u.s.7.7.7 (ohne punkte :wink: ) aber der nutzername ist gesperrt sowie alle texte mit meinem nutzernamen als inhalt werden durch DOOFMANN ersetzt... wollte dem schwa226 schon schreiben warum er meinen kommentar abgeändert hat *grins* aber lag wohl an der boardsoft.

welchen hintergrund hat das? ist mein name zu ... selbstbewusst? .. für dieses board? :gruebel: oder gabs da mal vorfälle?

grüße
nils_e aka geni us777
schwa226
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Montag 13. Februar 2006, 20:05

Beitrag von schwa226 »

Das war die Board-Soft. Ich hab den Code per Copy & Paste eingefügt!

War keine Absicht!

mfg
schwa226
nils_e
Neugieriger
Neugieriger
Beiträge: 7
Registriert: Mittwoch 15. März 2006, 12:50

Beitrag von nils_e »

*lach* ja zum glück hatte ich es nicht abgeschickt

aber die hintergründe kennst du nicht oder? hatte mal meine kristallgoogle gefragt.. die meinte was von gen ius images mit emu usw

kann ja verstehen wenn sowas nicht supported wird aber deswegen den namen komplett ausm system verbannen?! oder war da mehr?

nunja.. kommt ihr halt in den genuss meines realnamens <g>

grüße
nils