valid html via echo

H

homecrow

Jungspund
Moin, ich hab ein kleines Problem.
Und zwar müsste ich valid html mit einem echo erzeugen, das klappt leider nicht so ganz:

Das Problem ist:
Code:
echo -e "<div style="text-indent:35px;"><align="left"<a href="${LINK}" target="main">"${MENU}"</a> <br></align>"  >> /var/www/localhost/htdocs/website/menu_list/textil/t_gi_sommer.htm

Die "" bei href und das ; beim div machen Probleme, wenn ich sie weglasse, geht es allerdings gehen die Links dann unter Opera z.B. nicht weil er wohl nur valid html interpretiert.

Irgendwie bekomm ich es aber nicht gebacken das er das so macht wie ich es brauche.
Entweder wenn ich die "" drin lasse löst er die ${LINK} variable nicht auf.

Weiß jemand wie ich das verschachteln kann damit es klappt?
 
Escape-Sequenzen benutzen ;)

Innerhalb der äußeren " " überall einen Backslash \ vor die die " setzen.
Also:
Code:
echo -e "<div style=\"text-indent:35px;\">..."
 
Escape-Sequenzen benutzen ;)

Innerhalb der äußeren " " überall einen Backslash \ vor die die " setzen.
Also:
Code:
echo -e "<div style=\"text-indent:35px;\">..."
Stattdessen kannst Du auch den gesamten Ausdruck in einfache Hochkommate setzen. Die verhindern, dass bash eine Kommandozeilenerweiterung durchfuehrt, sprich, dass die Sonderzeichen innerhalb des Ausdrucks interpretiert werden.
Code:
echo -e '<div style="text-indent:35px;"><align="left"<a href="${LINK}" target="main">"${MENU}"</a> <br></align>'

Geht natuerlich nur gut, wenn innerhalb des Ausdrucks kein einfaches Hochkomma vorkommt. Dann muesstest Du so etwas wie
Code:
 echo -e 'bla' "'" 'blubb'
benutzen.
 
Ich wollte nur noch anmerken, dass rikolas Lösung in diesem Fall nicht funktionieren würde, weil homecrow wollte, dass die Variablen (z.B. LINK) expandiert werden. Allerdings verhindern die einfachen Hochkommata ja gerade das Expandieren der Zeichenkette.

Gruß Philip
 
Stattdessen kannst Du auch den gesamten Ausdruck in einfache Hochkommate setzen. Die verhindern, dass bash eine Kommandozeilenerweiterung durchfuehrt, sprich, dass die Sonderzeichen innerhalb des Ausdrucks interpretiert werden.
Code:
echo -e '<div style="text-indent:35px;"><align="left"<a href="${LINK}" target="main">"${MENU}"</a> <br></align>'

Code:
echo -e '<div style="text-indent:35px;"><align="left"<a href="[COLOR="red"]'[/COLOR]${LINK}[COLOR="red"]'[/COLOR]" target="main">"[COLOR="red"]'[/COLOR]${MENU}[COLOR="red"]'[/COLOR]"</a> <br></align>'

Machen wir halt vor und nach die Variablen wieder ein Hochkomma und schon tut das.

mfg
HeadCrash
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

dovecot und postfix Konfiguration Problem

Php mysql suchausgabe

Habe da ein Problem was nicht wegbekomme

CMS Problem [php]

Zurück
Oben