Seltsames Verhalten von echo

Autor: Stephan Gromer <stephan_at_gromer-online.de>
Datum: Fri, 20 May 2011 01:49:19 +0200
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo liebe Liste

ich habe seit längerem ein paar PHP und SHell Skript auf meinem
Webserver laufen (Debian 6.0).
Die haben bis heute auch klaglos funktioniert. Heute auf einmal nicht
mehr. Im einen Fall war es ein Rechteproblem, das sich lösen lies (auch
wenn ich nicht verstanden habe was den Zugriff auf einmal unterbunden
hat). Aber am zweiten beisse ich mir die Zähne aus. Ich habe zwar einen
Workaround aber ich würde es trotzdem gerne verstehen. Es ist sicher
etwas völlig triviales. Das Problem tritt auch unter Ubuntu 11.04 auf:

Skript (auf das wesentliche gekürzt):

#!/bin/bash

CREATETEX="create.tex"

createtitle()
{
echo '\documentclass[a4paper]{article}' >"$CREATETEX"
echo '\usepackage{ngerman}' >>"$CREATETEX"
echo '\usepackage{lmodern}' >>"$CREATETEX"
echo '\usepackage[utf8]{inputenc}' >>"$CREATETEX"
echo '\parindent 0pt' >>"$CREATETEX"
echo '\begin{document}' >>"$CREATETEX"
echo '\title{\bf \huge \sffamily Sammlung der Fachinformationen f"ur
Deutschland:' >>"$CREATETEX"
echo "$1" >>"$CREATETEX" # $1 = Grippeimpfstoffe / SPMSD-Impfstoffe /
Impfstoffe
echo '}' >>"$CREATETEX"
echo '\date{Stand: \today}' >>"$CREATETEX"
echo '\author{Diese Fachinformationssammlung wurde automatisch
erstellt}' >>"$CREATETEX"
echo '\maketitle' >>"$CREATETEX"
echo '\twocolumn[Sie finden im Anschluss die nachfolgended aufgelisteten
Fachinformationen in alphabetischer Reihenfolge. Die Datumsangabe
spiegelt das Erstellungsdatum der jeweiligen Datei auf dem Buildserver
wieder.]' >>"$CREATETEX"
echo '\tiny' >>"$CREATETEX"
echo '\begin{enumerate}' >>"$CREATETEX"
#deleted for testing
echo '\end{enumerate}' >>"$CREATETEX"
echo '\end{document}' >>"$CREATETEX"
}

createtitle "Grippe"

#=================

Und das ist der Output (mittels cat -vA create.tex)

\documentclass[a4paper]{article}$
\usepackage{ngerman}$
\usepackage{lmodern}$
\usepackage[utf8]{inputenc}$
\parindent 0pt$
^Hegin{document}$
^Iitle{^Hf \huge \sffamily Sammlung der Fachinformationen f"ur Deutschland:$
Grippe$
}$
\date{Stand: ^Ioday}$
^Guthor{Diese Fachinformationssammlung wurde automatisch erstellt}$
\maketitle$
^Iwocolumn[Sie finden im Anschluss die nachfolgended aufgelisteten
Fachinformationen in alphabetischer Reihenfolge. Die Datumsangabe
spiegelt das Erstellungsdatum der jeweiligen Datei auf dem Buildserver
wieder.]$
^Iiny$
^Hegin{enumerate}$
\end{enumerate}$
\end{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 gelöscht, in
der Vermutung das ein nicht sichbares Steuerzeichenirgendwo im
Skripttext ist. Auch speichern als UTF-8 oder ISO8859-15 ändert nichts,
ebenso ein -E beim echo

Ich habe zwar zwei Workarounds 1) in dem ich alle \ zunächst durch ^
ersetze und in der fertigen Datei mittels sed wieder in \ umwandle, bzw.
2) ich stelle dem echo ein "env " voran. Wobei ich bei letzterem nicht
weiss was da dann für eine andere "Umgebung" genutzt wird (habe den
Trick mit info coreutils 'echo invocation' gefunden)

Was habe ich nicht verstanden oder berücksichtigt?

Lieben Dank!
 Stephan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN1ax/AAoJEFvfAe9k38dfPC4H/3mye1JUWoCS1YU4X7TkFoH9
XM2CAAP5hllsP3Jk4tVrWdaohqZwjg/WbOhbDRgvGwTNJpkslY6Nq9krseHzH+hr
Z42rOLHXMhLdu6q6tnDc3x4/RM5duH3qRtY+nW7wOafX9MtNOSE7aAZjtSkubg8H
ubHPcZoaATUMwvahaR6gqa5wbd4/k8d79kCJVNwgMsLRr2cWOutx6IL6eDWrP2xK
/qge3sssoaIEPx+b6ySBh3UR61vpuEMCJgGgfFM2ebsGhYx7lRV8id7zlOHHZ9D6
uK8mZ6yAEDjydi3I9o6uRCQhFAhN3abpYsW5BeuvNB+iWaoDjuTzTTu+ARd8PHc=
=lbiL
-----END PGP SIGNATURE-----
-- 
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/
Empfangen am 20.05.2011

Dieses Archiv wurde generiert von hypermail 2.2.0 : 20.05.2011 CEST