Allgemeine Bash frage

Status
Für weitere Antworten geschlossen.

Kalysto

Benutzer
Mitglied seit
30. Dez 2014
Beiträge
343
Punkte für Reaktionen
8
Punkte
18
Hallo,

Ich hoffe das das hier passt denke sollte hier rein passen ;)

ich habe hier ein kleines bsp:
Rich (BBCode):
for file in $(cat "xxxxxxxx")
do
        path="Path to file........"
	if [ $(echo "$path" | egrep 'Logfiles|Backupscripte|Scripte') ]
	then
		Filenamepath=$(echo "$path" | sed 's:@::g')
		Filename="NUR ZUR DARSTELLUNG"
		"$Filename"="$path"
	fi
done

gibt es eine Lösung zu dem Rot markierten ??
Ich möchte sozusagen eine Variable selbst erstellen je nachdem was eben ausgegeben wird und dieses dann einfach wieder aufrufen....

Rich (BBCode):
echo "$NUR ZUR DARSTELLUNG"
Path to file.....

Ich hoffe ihr könnt mir folgen und mir eine gute Lösung geben weis nich wie ichs lösen soll :(

danke schonmal ;)
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
Mir ist nicht klar, was du willst.

In deinem Skript ist innerhalb der For Schleife deine Variable path immer hardcodiert gleich - da fehlt ggf. ein Dollar-$ bei file oderes ist ein Fehler beim Reinkopieren hier.

Grundsätzlich kannst du mit
Variable=Wert sachen zuweisen.
Mit $Variable zB mit echo ausgeben.
Zuweisen einfach mit NeueVariable=Variable.

Lies dir mal ein paar bash Grundlagentutorials durch. Das mit den Variablen und Zuweisung ist da eigentlich immer gut beschrieben.

Auch die if kann man anstelle von echo und egrep mit contains mit der Option -z als Regex prüfen.

In deinem Beispiel in rot, würde ich $ und die Hochkomma weglassen.
Filename=path

Aber war das deine Frage bzw. dein Problem?
 
Zuletzt bearbeitet:

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
das geht mit eval
eval export $Filename=$path
Beispiel
Rich (BBCode):
> Filename=aaa
> path=ppp
> eval export $Filename=$path
> echo $Filename
aaa
> echo $aaa
ppp
 

Kalysto

Benutzer
Mitglied seit
30. Dez 2014
Beiträge
343
Punkte für Reaktionen
8
Punkte
18
Mir ist nicht klar, was du willst.

In deinem Skript ist innerhalb der For Schleife deine Variable path immer hardcodiert gleich - da fehlt ggf. ein Dollar-$ bei file oderes ist ein Fehler beim Reinkopieren hier.

Grundsätzlich kannst du mit
Variable=Wert sachen zuweisen.
Mit $Variable zB mit echo ausgeben.
Zuweisen einfach mit NeueVariable=Variable.

Lies dir mal ein paar bash Grundlagentutorials durch. Das mit den Variablen und Zuweisung ist da eigentlich immer gut beschrieben.

Auch die if kann man anstelle von echo und egrep mit contains mit der Option -z als Regex prüfen.

In deinem Beispiel in rot, würde ich $ und die Hochkomma weglassen.
Filename=path

Aber war das deine Frage bzw. dein Problem?

Was aber meinst du hiermit ??:
Rich (BBCode):
Auch die if kann man anstelle von echo und egrep mit contains mit der Option -z als Regex prüfen.
Haste da mal ein bsp ??

Hast mich leider nicht richtig verstanden ;) aber Tommi2day :D

@Tommi2day muss ich den Export auch wieder Rücksetzen ?? Oder Ist das nur eine einfsche Varisblen Definition wie sonst auch ??
Nicht das ich da irgendwas zumülle wenn ich den Export etc. Nicht Rücksetze ??
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Das ist eine ganz normale Variablendefinition. Der zusätzliche export soll nur sicherstellen, das auch nachgelagerte Programme damit arbeiten können. Wenn das nicht gebraucht weil nur innerhalb des Scriptes damit gearbeitet wird, kann man sich den export Befehl auch sparen..
 

Kalysto

Benutzer
Mitglied seit
30. Dez 2014
Beiträge
343
Punkte für Reaktionen
8
Punkte
18
Ahh okay ich danke dir für die Erklärung;)
Top :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat