[Fli4l_dev] Linux Frage zum FLI4L
Helmut Backhaus
helmut.backhaus at gmx.de
Di Sep 30 21:14:26 CEST 2014
Moin Christoph!
Am 29.09.2014 um 23:28 schrieb Christoph Schulz:
> Hallo!
>
> Helmut Backhaus schrieb:
>
>> Wenn ich folgendes mache, funktioniert es problemlos:
>> befehl="alias"
>> order="ll"
>> opt="ls -la"
>> alias1="$befehl $order'$opt'"
>> ffm-router:/var/run # echo $alias1
>> alias 'ls -la'
>>
>> Wenn ich es aber folgendermaßen versuche geht das schief, Warum?
>> Variablen bleiben:
>>
>> idx=5
>> ffm-router:/var/run # alias$idx="$befehl $oder'$opt'"
>> -sh: alias=alias 'ls -la': not found
>>
>> Warum ist das so?
>
> Weil auf der linken Seite einer Zuweisung ein Variablenname stehen muss, in
> dem selbst keine weiteren Variablen vorkommen. Sonst kann der Shell-Parser
> die Zuweisung nicht als solche erkennen. Du nutzt aber alias$idx, das geht
> eben nicht.
So, oder so ähnlich habe ich mir das fast gedacht. Aber drauf gekommen
bin ich nicht!
>
> Probiere mal:
>
> eval alias$idx=\"\$befehl \$oder\'\$opt\'\"
Gemacht, und klappt wunderbar!
Danke!!
>
> Damit wird die Zuweisung zweimal geparst. Im ersten Anlauf wird der Index
> aufgelöst, in dem zweiten Anlauf alles andere. Deshalb sind auf der rechten
> Seite alle $, ' und " via \ maskiert, damit nicht bereits beim ersten Parsen
> alles ersetzt wird.
>
Echt alles S U P E R erklärt!!
Danke Dir!
Jetzt muss ich mir nur noch "eval" zu gemüte führen, benutzen tue ich es
aber verstehen tue ich das Kommando nicht. Aber ich habe hier genug
Literatur herumstehen, da wird sich bestimmt was passendes finden.
Nochmal herzlichen Dank!
--
Gruß,
Helmut
Mehr Informationen über die Mailingliste Fli4l_dev