Gregor Schneider <rc46fi@googlemail.com> (Mi 27 Feb 2008 21:21:48 CET): > Hallo zusammen, > > ich kriege hier bald zuviel. > > Ich lese per "while...do read" eine HTML-Datei, die keine > DOS-Zeilenumbrueche (^M) enthaelt, ein, und eine simple "echo"-Ausgabe > haengt mir diese dann rein. Woher weißt Du das? (Ich meine, wie hast Du das ermittelt? Und woher weißt Du, daß Du in Abhängigkeit von genau dieser einen "echo"-Zeile echo "<IMG > src=\"/foo/bar.jpg\" border=0 height=0 width=0>" \ >> ${DEST}/${HTML_DIR}/$(basename ${HTML_FILE}) dann doch welche drin hast? (Abgesehen davon, daß Dein Problem sich auch sicher anders lösen ließe, aber das war ja nicht Deine Frage :)) > </style><script type="text/javascript" language="javascript1.2" > src="whmsg.js"></script>^M > <script type="text/javascript" language="javascript" src="whver.js"></script>^M ... > > und hier, wie es ohne die zusaetzliche Zeileinausgabe per "echo" > rauskommt (also wie es sein sollte): > > </style><script type="text/javascript" language="javascript1.2" > src="whmsg.js"></script> ... > > Interessant ist zu sehen, dass in der zusaetzlich ausgegebenen Zeile > kein DOS-Umbruch ausgegeben wird. Das ^M ist das "0x0d" (\r), also nur eine Hälfte des Dos-\r\n. Ich vermute, daß Du mit dem vim diese ^M siehst. Und der macht das genau dann, wenn eine Unix-Zeile dort im Text enthalten ist, dann meint er, daß es fileformat=unix ist, und das ^M ein ganz normales Zeichen sei. Ein Unix-echo wird nie einen \r\n schreiben, sonden immer nur ein \n, außer Du wünschst Dir das: Vergleiche echo -e '' | xxd echo -e '\r' | xxd -- Heiko
Attachment:
signature.asc
Description: Digital signature