Allgemeine Bash frage

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Kalysto

Benutzer
Registriert
30. Dez. 2014
Beiträge
393
Reaktionspunkte
10
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 ;)
 
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:
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
 
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 ??
 
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..
 
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