tobisc
Goto Top

ShellScript String in Variable

Hallo zusammen

ich habe in einem bash-skript eine variable ($wert), die enthält ein wert 7.52318 aus einer berechnung. nun bearbeite ich den mit cut, dass nur noch die ersten 3 stellen vorhanden sind, also 7.5. wie kann ich nun den neuen wert einer variable zuweisen? so wie ich es in meinem skript mache, funktioniert es nicht:

value=$($wert | cut -c 1,2,3 2>&1);

ich erhalte den fehler "7.52318: Kommando nicht gefunden".

danke und gruss
TobiSC

Content-ID: 166848

Url: https://administrator.de/contentid/166848

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

ketchup
ketchup 25.05.2011 um 09:04:24 Uhr
Goto Top
das wäre meine lösung:

value=`echo $wert| cut -c 1,2,3 2>&1`
  1. echo $value
7.5

lG
Jürgen
TobiSC
TobiSC 25.05.2011 um 11:11:20 Uhr
Goto Top
Hallo Jürgen

das klappt so, genau wie ich es wollte!
vielen dank!!

grüsse
TobiSC
micneu
micneu 25.05.2011 um 13:53:16 Uhr
Goto Top
willst du nicht als erledigt abhacken?
ich wollte auch noch antworten, brauch ich ja nicht mehr face-smile

gruß michael
TobiSC
TobiSC 25.05.2011 um 18:25:10 Uhr
Goto Top
jep, ich wollte abhacken, aber es sieht aus, als ob ich das mit den variablenzuweisungen noch nicht ganz kapiert habe...
wenn ich aus einem verzeichnis die neuste datei auslese, wie kann ich diese dann direkt in eine variable schreiben?

die ausgabe des neusten files klappt:
ls -t -r | tail -n 1

nun aber dieses file in eine variable, analog wie jürgen meinte:
picture=`echo ls -t -r | tail -n 1 2>&1`

das geht so nicht. wie sollte ich dies dann definieren?

grüsse
TobiSC
Biber
Biber 25.05.2011 um 21:37:46 Uhr
Goto Top
Moin TobiSC,

willkommen im Forum.


Du hast es einfach nur komplizierter gemacht als es eigentlich ist.
Durch den (überflüssigen) versuchten Umweg über "echo" klappt es nicht.

[Demo am bash-Prompt.(also das "bash-3.00$ " NICHT mit eingeben)]
bash-3.00$ ls -t -r | tail -1
MeinNeuestesFile.sh 

bash-3.00$ myvar=`ls -t -r | tail -1`
bash-3.00$ echo $myvar
MeinNeuestesFile.sh 

Grüße
Biber

P.S. ich habe eine andere tail-Variante, deshalb fehlt bei mir der Parameter "-n ".
Das Fehlermeldungen-Umleiten-Krams kann natürlich auch wieder dran - war jetzt bloss nicht wesentlich.
P.P.S. @all
Ich wäre dankbar dafür, wenn ihr Beiträge nicht "abhacken", sondern einfach nur "abhaken" würdet in den Bereichen, in denen ich gelegentlich mitlese.
TobiSC
TobiSC 25.05.2011 um 21:45:14 Uhr
Goto Top
Hallo Biber

danke, habs eben vor 5min selbst rausgefunden! ich erlaube mir nun noch eine letzte frage: wie kriege ich denn das zweitneuste file im verzeichnis und NUR dieses? wenn ich "tail -2" eingebe, erhalte ich das neuste und zweitneuste, ich möchte aber NUR das zweitneuste!

eine idee?

danke und grüsse

TobiSC
Biber
Biber 25.05.2011 um 21:56:33 Uhr
Goto Top
Moin TobiSC,

Als stinkefauler Pragmatiker würde ich unter *ix sagen: "Nimm die letzten zwei der Liste mit "tail" und davon das erste mit "head".

Sinngemäß also:
ls -t -r | tail -2| head -1

Grüße
Biber
TobiSC
TobiSC 25.05.2011 um 22:02:43 Uhr
Goto Top
Perfekt face-smile

Allerbesten Dank!

TobiSC