Script Variablen/Verarbeitung
-
- Beiträge: 375
- Registriert: 07.06.2005 09:48:43
Script Variablen/Verarbeitung
Hi,
kann mir jemand vielleicht sagen, ob es möglich wäre die Länge einer Variablen zu bestimmten? Wenn i="Hallo Kurt" ist, würde ich gerne wissen, dass es 10 Zeichen sind. Ich möchte für eine Ausgabe auf dem Bildschirm die Länge anpassen, und z.B. bis zum 15ten Zeichen eben Leerzeichen einfügen. Das am Ende eben das rauskommt: i="Hallo Kurt "
Zudem würde ich gerne wissen, ob es möglich ist mit Scripten etwas komplexer zu rechnen, ich habe den Wert 2000,300 und will diesen durch 1000 teilen, aber mit expr klappt das nicht. Er kommt wohl mit der Kommazahl nicht klar. Ich habe schon versucht das Komma mit einem Punkt zu ersetzen. Zudem würde mich auf/ab-runden, sowie verkürzen Interessieren. Also aus 100,290 dann eben 100,29 machen zu können.
mfg
kann mir jemand vielleicht sagen, ob es möglich wäre die Länge einer Variablen zu bestimmten? Wenn i="Hallo Kurt" ist, würde ich gerne wissen, dass es 10 Zeichen sind. Ich möchte für eine Ausgabe auf dem Bildschirm die Länge anpassen, und z.B. bis zum 15ten Zeichen eben Leerzeichen einfügen. Das am Ende eben das rauskommt: i="Hallo Kurt "
Zudem würde ich gerne wissen, ob es möglich ist mit Scripten etwas komplexer zu rechnen, ich habe den Wert 2000,300 und will diesen durch 1000 teilen, aber mit expr klappt das nicht. Er kommt wohl mit der Kommazahl nicht klar. Ich habe schon versucht das Komma mit einem Punkt zu ersetzen. Zudem würde mich auf/ab-runden, sowie verkürzen Interessieren. Also aus 100,290 dann eben 100,29 machen zu können.
mfg
Die Länge einer Zeichenkette ist ganz einfach:
Die anderen Sachen weiß ich auf die schnelle leider nicht auswendig.
Code: Alles auswählen
expr length $VAR
- Night.Hawk
- Beiträge: 655
- Registriert: 24.05.2003 11:00:39
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Hamburg
-
Kontaktdaten:
-
- Beiträge: 375
- Registriert: 07.06.2005 09:48:43
Hi, hat super funktioniert. Leider scheitere ich an was ganz simplen. Hinzufügen von Daten an die bestehende Variable
Wie gesagt, habe i="Hallo", soll aber dann i="Hallo " werden.
Zudem habe ich noch ein Array, und dort will ich die 2te Variable ändern.
Wie spreche ich denn diese Variable an? Ich kann ja nicht einfach:
Schreiben oder? Die Bash will doch:
mfg
Wie gesagt, habe i="Hallo", soll aber dann i="Hallo " werden.
Code: Alles auswählen
bt="HALLO"
rt=`expr length "$bt"`
until [ $rt = 15 ] #### Ist das = korrekt?
do
echo $rt
echo $bt
bt=$bt & " " #### WIE GEHT DAS? VARIABLEN ERWEITERN
rt=`expr length $bt`
done
Wie spreche ich denn diese Variable an? Ich kann ja nicht einfach:
Code: Alles auswählen
${i[1]}="Hallo"
Code: Alles auswählen
i=( ARRAY1 ARRAY2 ARRAY3 )
Wie man Strings bearbeitet steht hier. Du kannst dir die neuste Version als .tar.bz2 hier runterladen.
Das Aneinanderhängen von Strings geht so:
Um Hallo Kurt oä auf 15 Zeichen zu bringen, kannst du dies tun
funktioniert.
Das Aneinanderhängen von Strings geht so:
Code: Alles auswählen
eins="hallo"
zwei=$hallo" "
echo ${#zwei} # Antwort: 6
Code: Alles auswählen
eins="Hallo Kurt"
zwei="$eins"" "
drei=${zwei:0:15}
Natürlich nicht. Das Linke ist die Variable, nicht deren Inhalt.KingBonecrusher hat geschrieben:Zudem habe ich noch ein Array, und dort will ich die 2te Variable ändern.
Wie spreche ich denn diese Variable an? Ich kann ja nicht einfach:
Code: Alles auswählen
${i[1]}="Hallo"
Code: Alles auswählen
i[1]="Hallo"
Das geht mit bc. Mehr dazu hier.KingBonecrusher hat geschrieben:Zudem würde ich gerne wissen, ob es möglich ist mit Scripten etwas komplexer zu rechnen, ich habe den Wert 2000,300 und will diesen durch 1000 teilen, aber mit expr klappt das nicht. Er kommt wohl mit der Kommazahl nicht klar. Ich habe schon versucht das Komma mit einem Punkt zu ersetzen.
Zuletzt geändert von Lohengrin am 08.02.2007 19:20:01, insgesamt 1-mal geändert.
-
- Beiträge: 375
- Registriert: 07.06.2005 09:48:43
Danke für die Super Tipps...
Habe folgendes gemacht:
Das funktioniert super. Müsste man natürlich bisschen verkleinern
Ach ja, kann ich Funktionen auch in andere Dateien packen? Sowas wie include in c?
Habe folgendes gemacht:
Code: Alles auswählen
x="BENUTZER:"
y=" "
while [ ${#x} != 25 ]
do
y=$x" "
x=$y
done
echo "$x Winfried Wühlmaus"
Ach ja, kann ich Funktionen auch in andere Dateien packen? Sowas wie include in c?
Hi,
um die Laenge des String zu ermitteln koenntest du auch:
Ich konnte es allerdings nur mittey einer BusyBox testen, da musste ich anstelle von -m -c verwenden.
Um Funktionen aus einem Shellscript in eine andere Datei auszulagern, nutze ich folgendes:
In der Datei die ich hier einbinde, ist allerdings nur diese eine Funktion enthalten!
Du musst auf den Punkt und das anschliessende Leerzeichen achten das vor dem Pfad zum Include File steht.
Das ganze kann man zum einen unter "Punkt Komando" oder unter "Sourcen" finden.
um die Laenge des String zu ermitteln koenntest du auch:
Code: Alles auswählen
i="Hallo Kurt"
my_length=$(echo $i|wc -m)
Um Funktionen aus einem Shellscript in eine andere Datei auszulagern, nutze ich folgendes:
Code: Alles auswählen
# bla bla bla
function meine_auszulagernde_Funktion {
. $Pfad_zur_datei/$Include_file.sh
}
# bla bla bla
meine_auszulagernde_Funktion #hier wird die Funktion aufgerufen
Du musst auf den Punkt und das anschliessende Leerzeichen achten das vor dem Pfad zum Include File steht.
Das ganze kann man zum einen unter "Punkt Komando" oder unter "Sourcen" finden.
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
KingBonecrusher hat geschrieben:bt=$bt & " " #### WIE GEHT DAS? VARIABLEN ERWEITERN
Code: Alles auswählen
bt="$bt "