{"id":3356,"date":"2018-02-08T12:22:28","date_gmt":"2018-02-08T11:22:28","guid":{"rendered":"http:\/\/roboblog.fatal-fury.de\/?p=3356"},"modified":"2018-02-08T12:22:28","modified_gmt":"2018-02-08T11:22:28","slug":"line-1-binbash-no-such-file-or-directory","status":"publish","type":"post","link":"http:\/\/roboblog.fatal-fury.de\/?p=3356","title":{"rendered":"line 1: #!\/bin\/bash: No such file or directory"},"content":{"rendered":"<pre><code>\r\n$ .\/test.sh \r\n.\/test.sh: line 1: #!\/bin\/bash: No such file or directory\r\n$ cat test.sh\r\n#!\/bin\/bash\r\n$ ll \/bin\/bash \r\n-rwxr-xr-x 1 root root 1.1M May 15  2017 \/bin\/bash\r\n<\/code><\/pre>\n<p>WTF?! Wo ist der Fehler? Ein Blick mit dem hexeditor zeigt seltsame Zeichen am Dateianfang, die im Texteditor nicht sichtbar sind.<\/p>\n<pre><code>\r\n$ head -n 1 test.sh | hexdump -C\r\n00000000  ef bb bf 23 21 2f 62 69  6e 2f 62 61 73 68 0a     |...#!\/bin\/bash.|\r\n<\/code><\/pre>\n<p>Die Hex Zeichenfolge ef bb bf ist ein BOM (Byte order mark) und steht in diesem Fall f\u00fcr die Codierung einer UTF8 Datei. Diese wurde wohl automatisch in die Datei eingef\u00fcgt. Nur ist Unix \u00e4lter als Unicode und damals hat sich wirklich keiner daf\u00fcr interessiert, so dass BOM beim interpretieren der Shellskripte nicht mit interpretiert wird. Braucht man dort auch wirklich nicht.<\/p>\n<p>Leider haben die Unicode Leute nichts seit 1960 gelernt und packen wieder Kontrollzeichen in Plaintext Dateien rein. Mit dem Ergebnis, dass alles inkompatibel bleibt. Plaintext - Klartext, nimm es w\u00f6rtlich. F\u00fcr alle die es vergessen haben: Mit plain text (engl. f\u00fcr einfacher, schlichter Text) werden Daten bezeichnet, die direkt unter Verwendung einer Zeichenkodierung in Text umgesetzt werden k\u00f6nnen. Dies ist mit BOM nicht der Fall. Fail.<\/p>\n<p>Mit vim bekommt man die BOM Bombe leicht wieder weg:<\/p>\n<pre><code>\r\n:set nobomb\r\n:wq\r\n<\/code><\/pre>\n<pre><code>\r\n$ head -n 1 test.sh | hexdump -C\r\n00000000  23 21 2f 62 69 6e 2f 62  61 73 68 0a              |#!\/bin\/bash.|\r\n$ .\/test.sh \r\n$\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>$ .\/test.sh .\/test.sh: line 1: #!\/bin\/bash: No such file or directory $ cat test.sh #!\/bin\/bash $ ll \/bin\/bash -rwxr-xr-x 1 root root 1.1M May 15 2017 \/bin\/bash WTF?! Wo ist der Fehler? Ein Blick mit dem hexeditor zeigt seltsame Zeichen am Dateianfang, die im Texteditor nicht sichtbar sind. $ head -n 1 test.sh | hexdump [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[18],"class_list":["post-3356","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-linux"],"_links":{"self":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3356"}],"version-history":[{"count":6,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3356\/revisions"}],"predecessor-version":[{"id":3362,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3356\/revisions\/3362"}],"wp:attachment":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3356"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}