[fli4l] Befehlszeile in easycron kann nicht geparst werden

Christoph Schulz fli4l at kristov.de
Fr Okt 16 15:32:57 CEST 2015


Hallo!

Stefan Sauer schrieb:

> Moin,
> 
> ich möchte den Befehl:
> 
> EASYCRON_2_COMMAND='iptables -t filter -L FORWARD|grep
> 'usr-forward-time-block'||iptables -t filter -I FORWARD 1 -o eth0 -j
> usr-forward-time-block'
> [...]
> Ich vermute mal, dass irgendwelche Zeichen escaped werden müssen, aber
> welche?

Für Variablen gelten die normalen Linux-Shell-Regeln, d.h. wenn du einfache 
Anführungsstriche (') verwenden willst, dann _musst_ du den Variablenwert in 
_doppelte_ Anführungsstriche setzen:

EASYCRON_2_COMMAND="iptables -t filter -L FORWARD|grep 'usr-forward-time-
block'||iptables -t filter -I FORWARD 1 -o eth0 -j usr-forward-time-block"

Natürlich musst du dann innerhalb einer solchen Zeichenkette die üblichen 
Maskierungsregeln beachten: Die Zeichen " und \ müssen via \ maskiert 
werden, d.h. du musst

  ABC="def\\ghi\"jkl\"mno"

schreiben statt:

  ABC='def\ghi"jkl"\mno'

Das funktioniert zumindest mit mkfli4l-ng im 4.0-Zweig. Für mkfli4l in 
3.10.x kann ich diesbezüglich leider keine Garantien machen, da heißt es 
einfach: ausprobieren.


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



Mehr Informationen über die Mailingliste Fli4L