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-Key: 166848

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

Printed on: April 26, 2024 at 17:04 o'clock

Member: ketchup
ketchup May 25, 2011 at 07:04:24 (UTC)
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
Member: TobiSC
TobiSC May 25, 2011 at 09:11:20 (UTC)
Goto Top
Hallo Jürgen

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

grüsse
TobiSC
Member: micneu
micneu May 25, 2011 at 11:53:16 (UTC)
Goto Top
willst du nicht als erledigt abhacken?
ich wollte auch noch antworten, brauch ich ja nicht mehr face-smile

gruß michael
Member: TobiSC
TobiSC May 25, 2011 at 16:25:10 (UTC)
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
Member: Biber
Biber May 25, 2011 at 19:37:46 (UTC)
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.
Member: TobiSC
TobiSC May 25, 2011 at 19:45:14 (UTC)
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
Member: Biber
Biber May 25, 2011 at 19:56:33 (UTC)
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
Member: TobiSC
TobiSC May 25, 2011 at 20:02:43 (UTC)
Goto Top
Perfekt face-smile

Allerbesten Dank!

TobiSC