Variablen

T

Traxmaxx

Grünschnabel
Morgen!

Ich hab folgendes Problem:

Ich will aus einer Textdatei bestimmte Stellen rausholen, was mit

Code:
#!/bin/bash

 PATH=/usr/local/bin:/usr/bin:/bin
 YEAR=`date +%y`



 vnstat -d | cat | while read line
 do
 if [ "$VAR" = 5 ]
 then
 if [ "$line" = "------------------------+-------------+--------------" ]
 then
 exit 0
 else
 echo $line | awk '{ print $1 }'

 fi
 else VAR=$[VAR + 1 ]
 fi
 done
soweit auch super funktioniert.

Nun möchte ich aber

Code:
$line | awk '{ print $1 }'
in eine variable packen. Ich hab alles durchprobiert. Jedoch geht es weder mit

Code:
$variable = $line | awk '{ print $1 }'
noch mit sonstigen anderen möglichkeiten die ich versucht habe. Hat einer ne Idee wie ich das hinbekomme?

Danke euch schonmal

Tschö mit ö Traxmaxx
 
variable = `echo $line | awk '{ print $1 }'`
 
Erstmal danke für die schnelle antwort :)

Es geht trotzdem irgendwie nicht :hilfe2:
Wenn ich es so ausführe:

Code:
#!/bin/bash

 PATH=/usr/local/bin:/usr/bin:/bin
 YEAR=`date +%y`



 vnstat -d | cat | while read line
 do
 if [ "$VAR" = 5 ]
 then
 if [ "$line" = "------------------------+-------------+--------------" ]
 then
 exit 0
 else
 $variable = `echo $line | awk '{ print $1 }'`

 echo $variable

 fi
 else VAR=$[VAR + 1 ]
 fi
 done

Bekomme ich den Fehler:
./script1.sh: line 16: =: command not found

Wenn ich das $vor der Variable wegnehme, wie es sich eigentlich auch gehört wenn ich richtig liege kommt der Fehler :

./script1.sh: line 16: variable: command not found

oder mach ich immer noch etwas falsch? :think:



Hmm irgendwie hab ich es doch hinbekommen...
recht herzlichen Dank :D
 
Zuletzt bearbeitet:
Hallo
Versuch es mal so:
VAR="$(echo $line | awk '{ print $1 }')"

Gruß Wolfgang
 
so nun funzt es! :D

Hab aber noch ne Frage:

Wie kann ich einer Variablen ein Leerzeichen (ASCII Code) zuweisen?
Hab was von\oktalwert gelesen... funktioniert aber nicht

MfG Traxmaxx
 
Hab ich auch schon ausprobiert, jedoch geht das nicht. ?(
Ich will nen String mit XY Zeichen haben und vorne Leerzeichen dransetzen, bis der String XY Zeichen lang ist.
Hier nochmal ein Quelltextausschnitt:

VAR="_$VAR"
done
echo $VAR
Anstatt des Unterstriches vor $Var soll ein Leerzeichen rein. Aber wenn ich es mit " " mache geht es nicht. Deswegen wollte ich eigentlich wissen, wie ich es als ASCII Code da rein bekomme um zu schaun ob es so vllcht geht. :)

Hm habs nun hinbekommen :)

Mit
VAR=" $VAR"
done
echo "$VAR"
geht es nun.
Ich danke euch...

Tschö mit ö Traxmaxx
 
Zuletzt bearbeitet:
Hallo
Auch ASCII kannst du einer Stringvariablen zuweisen!
z.B so
TEST=$(echo -ne "\x20\x20\x20Leer\x20weiter")

Gruß Wolfgang
 
geht übrigens auch ohne echo
Code:
TEST=$'\x20\x20\x20Leer\x20weiter'
 
ninguno schrieb:
geht übrigens auch ohne echo
Code:
TEST=$'\x20\x20\x20Leer\x20weiter'
Hallo
Ja, das stimmt. Aber ich bin mir nicht sicher, ob das portable ist.
Hab mir die alte Schreibweise angewöhnt, weil das überall klappt.

Gruß Wolfgang
 

Ähnliche Themen

Switche abfragen über Script

Shell Skript beschleunigen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

HandbrakeCLI Shell Skript

Textdatei zeilenweise in durchnummerierte Variablen schreiben

Zurück
Oben