ubuntuusers.de

LPI Bessere Erklärung für FOO=bar ; $FOO=quux

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

kalibari

Anmeldungsdatum:
3. August 2010

Beiträge: 338

Hallo Ubuntuusers, ich bin grade über eine Frage in der LPI Academy gestolpert, deren Antwort ich nicht verstehe:

http://www.lpi-academy.de/wiki/101-88/

Wenn Sie wirklich einen Variablennamen aus einer anderen Variablen nehmen wollen, so wie Antwort 1 das andeutet, müssen Sie die Shell dazu bringen, das ganze Kommando noch einmal von vorne anzuschauen, etwa mit eval $FOO=quux.

JuergenF

Anmeldungsdatum:
22. Oktober 2004

Beiträge: 2009

Wohnort: FFM

Nehmen wir mal an, Du hättest 2 andere Variablen

bar=grumbl
baz=smurf

und im weiteren Script entscheidet sich, welcher dieser beiden Variablen Du den Wert 'quux' zuweisen willst. Dann könntest Du den NAMEN dieser Variablen in einer anderen Variablen speichern:

FOO=bar

und dann versuchen über diesen Umweg dieser Variablen (bar) einen Wert zuzuweisen:

$FOO=quux # klappt nicht, weil $irgendwas nicht links vom = stehen darf (hierfür zumindest)
eval $FOO=quux # klappt, weil erstmal $FOO ausgewertet wird (zu bar), und dessen Ergebnis dann als linkes Argument genommen wird

echo bar  # =quux
echo baz  # =smurf

Nimm das aber nicht als Anleitung, wie man so etwas macht - da steigt man später kaum noch durch. Du kannst wohl immer genau so gut erst bei der Zuweisung entscheiden, welcher Variablen Du etwas zuweist.

Antworten |