[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