[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Seltsames Verhalten von echo


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo liebe Liste

ich habe seit laengerem 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 loesen lies (auch
wenn ich nicht verstanden habe was den Zugriff auf einmal unterbunden
hat). Aber am zweiten beisse ich mir die Zaehne aus. Ich habe zwar einen
Workaround aber ich wuerde es trotzdem gerne verstehen. Es ist sicher
etwas voellig triviales. Das Problem tritt auch unter Ubuntu 11.04 auf:

Skript (auf das wesentliche gekuerzt):

#!/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 geloescht, in
der Vermutung das ein nicht sichbares Steuerzeichenirgendwo im
Skripttext ist. Auch speichern als UTF-8 oder ISO8859-15 aendert nichts,
ebenso ein -E beim echo

Ich habe zwar zwei Workarounds 1) in dem ich alle \ zunaechst 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 fuer eine andere "Umgebung" genutzt wird (habe den
Trick mit info coreutils 'echo invocation' gefunden)

Was habe ich nicht verstanden oder beruecksichtigt?

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/