[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Seltsames Verhalten von echo
[Thread Prev] | [Thread Next]
- Subject: Re: Seltsames Verhalten von echo
- From: Markus Demleitner <msdemlei@xxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 20 May 2011 08:03:39 +0200
- To: uugrn@xxxxxxxxxxxxxxx
On Fri, May 20, 2011 at 01:49:19AM +0200, Stephan Gromer wrote:
[...]
> echo '\begin{document}' >>"$CREATETEX"
[...]
> ^Hegin{document}$
[...]
> Was ich nicht verstehe ist, warum einige der \ durch seltsame Zeichen
> ersetzt wurden, die auch gleich noch weitere Zeichen "fressen". Die \
> sind doch alle in '' angegeben. Ich habe auch schon Zeilen geloescht, in
Die Freuden des Unix-Quotings. Aber der Schluessel hier ist die
richtige Frage: "*Welches* echo verhaelt sich, na ja, komisch?".
Waehrend naemlich echo (1), also in der Regel /bin/echo in der Manpage
sagt
-E disable interpretation of backslash escapes (default)
ist das, was du bekommst, wenn du dein Skript so schreibst, wie du es
schreibst, das bash-builtin. Ueber das erfaehrt man in help echo:
`echo' interprets the following backslash-escaped characters:
\a alert (bell)
\b backspace
-- und da kommt das ^H her (der backspace).
Es gibt viele Moeglichkeiten, das zu fixen (%s#echo#/bin/echo im vi
ist eine davon), aber ich wuerde wahrscheinlich zu einem Here-document
raten, so wie das gemacht ist.
Aber zwecks due diligence: Shellskripts als CGI-Backends verlangen
viel Sorgfalt bei der Input-Validierung, und wenn du Eingaben aus dem
Netz in TeX uebernimmst, solltest du dran denken, dass TeX
Turing-vollstaendig ist und Zugriff auf dein Dateisystem hat.
Gruesse,
Demi
--
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/