[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