[Fli4l_dev] Linux Frage zum FLI4L

Christoph Schulz fli4l at kristov.de
Mo Sep 29 23:28:46 CEST 2014


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.

Probiere mal:

eval alias$idx=\"\$befehl \$oder\'\$opt\'\"

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.


Viele Grüße,
-- 
Christoph Schulz
[fli4l-Team]



Mehr Informationen über die Mailingliste Fli4l_dev