Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Link zu dieser Vergleichsansicht
wiki:linux:probleme [2009/11/21 05:32] grossing |
wiki:linux:probleme [2015/10/04 04:28] (aktuell) grossing |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Fehlersuche unter Linux ====== | + | **DIE INHALTE DIESER SEITE SIND NACH http://grossing.org/linux/2010/05/18/kmail-script-kopieren-problem.html und http://grossing.org/linux/firefox/ssh/computer/2010/05/18/firefox-auf-zwei-rechnern-und-einem-monitor.html UMGEZOGEN!** |
- | /****** ===== Vorgehensweise ===== ******/ | ||
- | |||
- | |||
- | ===== Mir bekannte Fehlerquellen ===== | ||
- | |||
- | ==== Scripte ==== | ||
- | |||
- | === Scripte aus der Mailanzeige von KMail herauskopieren === | ||
- | |||
- | Ich habe das Script [[scripte#alle_archive_der_opensuse-de_mailingliste_als_.gz_herunterladen|download.sh]] gemailt bekommen. | ||
- | Das habe ich per Copy&Paste aus KMail in einen Editor kopiert, in ~/bin abgespeichert und mit [[tools#chmod|chmod +x]] ausführbar gemacht. | ||
- | |||
- | == Das Problem == | ||
- | |||
- | Beim Ausführen erhielt ich folgenden Fehler: | ||
- | |||
- | <code>florian@florian:~/bin> ./download_test.sh | ||
- | ./download_test.sh: line 7: syntax error near unexpected token `do' | ||
- | ./download_test.sh: line 7: ` for m in $(seq 1 12); do'</code> | ||
- | |||
- | Beim Absender geht es, bei mir nicht. Rätselraten. Probieren. | ||
- | |||
- | == Die Ursache == | ||
- | |||
- | Das Script enthält zwei oder mehr aufeinander folgende Leerzeichen. | ||
- | Das ist eigentlich kein Problem. | ||
- | |||
- | Wenn ich mir das Script jedoch mit [[tools#mcedit|mcedit]] angesehen habe, wurde für jedes zweite der aufeinander folgenden Leerzeichen statt 0x20 das Zeichen 0xA0 aus der Zeichentabelle verwendet. Die sehen beide gleich aus, sind auch beides Leerzeichen. | ||
- | |||
- | Mit dem mcedit sieht das richtig codierte Leerzeichen so aus (rote Umrandung): | ||
- | {{ http://florian-gross.de/gallery/albums/userpics/10001/mcedit1.png }} | ||
- | |||
- | Das "falsch" codierte Leerzeichen sieht im mcedit dagegen so aus (rote Umrandung): | ||
- | {{ http://florian-gross.de/gallery/albums/userpics/10001/mcedit2.png }} | ||
- | |||
- | |||
- | **ABER:** 0x20 wird auch von der Shell als Leerzeichen erkannt und beim Ausführen ignoriert, 0xA0 wird aber versucht mit auszuführen. | ||
- | |||
- | In meinem Fall wollte die Shell also nicht <code>«for m in $(seq 1 12); do»</code> sondern <code>« for m in $(seq 1 12); do»</code> ausführen. | ||
- | Beachte das Leerzeichen nach dem «! Das ist das 0xA0. | ||
- | Und da « for» kein Befehl ist, sondern nur «for», kommt für die Shell anstelle von <code>for .. ; do irgendwas; for .. ; do irgendwas;</code> ein <code>for .. ; do irgendwas; do irgendwas;</code> heraus. | ||
- | |||
- | == Die Lösung == | ||
- | |||
- | * Entweder im Script die problematischen Leerzeichen von Hand durch die "richtigen" Leerzeichen ersetzen (aufwendig!) | ||
- | |||
- | oder | ||
- | |||
- | * Die email abspeichern und dann mit einem Texteditor alles außer dem Script entfernen. | ||
- | |||
- | == Anmerkung == | ||
- | |||
- | Dieses Problem besteht auch mit einzelnen Befehlszeilen, wenn der Absender z.B. zwischen Befehl und Option(en) aus Versehen zwei Leerzeichen gemacht hat. | ||
- | In diesem Fall einfach das überflüssige Leerzeichen entfernen. | ||
- | |||
- | Die Shell selber stört sich selber nicht an zwei oder mehreren Leerzeichen: | ||
- | <code> | ||
- | florian@florian:~/bin> head ../Homepage/bytecamp/grossing.de/index.php | ||
- | <?php | ||
- | header("Location: home.php"); | ||
- | exit(); | ||
- | ?> | ||
- | florian@florian:~/bin> head ../Homepage/bytecamp/grossing.de/index.php | ||
- | <?php | ||
- | header("Location: home.php"); | ||
- | exit(); | ||
- | ?> | ||
- | </code> | ||
- | |||
- | Du möchtest selber ein wenig damit herumspielen? Du kannst dir das Script mit den problematischen Leerzeichen [[http://download.grossing.de/script/download-script_mit_falschen_leerzeichen.sh|herunterladen]] | ||
- | |||
- | \\ | ||
- | |||
- | ---- | ||
- | Du hast ein Script oder eine Konfigurationsdatei, die du gerne anderen hier zur Verfügung stellen möchtest? | ||
- | Bitte mit den Kommentaren und eventuell einer Kurzbeschreibung (zum besseren Verständnis) [[linuxwiki@florian-gross.de|mailen]]. Danke! | ||
- | --- //[[florian@grossing.de|Florian Groß]]// |