• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Umlaute und das Terminal

Jan

Gast
Hallo,

ich habe folgendes Problem, ich möchte ein shell script programmieren, welches zum Beispiel
einen Ordner namens "Öffentlich" anlegt. Soweit so gut. Tippt man manuell "mkdir Öffentlich"
wird "mkdir \303\226ffentlich" daraus gemacht.

Aktion ausgeführt => Ordner "Öffentlich" vorhanden.

Nun ein shell script verfasst mit folgendem Inhalt:

#!/bin/bash

mkdir "Öffentlich"
Aufgerufen & augeführt => mkdir: ?ffentlich: Invalid argument

Soweit so gut. Versuchen wir es doch mal mit:

#!/bin/bash

mkdir \303\226ffentlich
Aufgerufen & ausgeführt => Ordner namens "303226ffentlich" wurde angelegt.

Zurück zur Frage: Was mach ich falsch bzw. was kann ich tun um dieses Problem zu lösen?
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Ich habe gerade ein ähnliches Problem mit einem Skript. Seit ich es mit UTF-8 Encoding abgespeichert habe, kommt rsync zB mit Umlauten und japanischen Zeichen problemlos zurecht. Leider hab ich mit so grundlegenden Dingen wie ls und rm immer noch die Probleme, daß diese nicht mit dem richtigen Encoding ausgeben was die Weiterverarbeitung erschwert.

Ich weis, es ist nur wenig Info, aber vielleicht hilfts ja.
Gruß Pepi
 

Jan

Gast
Hallo Pepi,

also ich habe das natürlich gleich mal ausprobiert,
leider bekomme ich bei einem UTF8 codiertem
shell script folgende Fehlermeldung beim Aufruf:

-bash: ./start.sh: cannot execute binary file

Das ist's dann noch nicht. Zurück nach Mac Roman konvertiert funktioniert's wieder.

Der Jan
 

Cyrics

Neuer Berner Rosenapfel
Registriert
01.04.05
Beiträge
1.973
hmmm, ich frag mich ehrlich gesagt wo das Problem ist...
ihr könnt doch beim Terminal die Umlaute eintippen.
Die werden halt bloss als Escape-Befehl umschreiben.

in der GUI sind die Dateien/Ordner dann aber richtig mit den Umlauten bezeichnet.
Wenn ihr dann mit den Ordnern oder Dateien im Terminal arbeiten wollt (dann sollte man übrigens keine Umlaute nutzen, wenn man damit im Termnal arbeiten will ;) ), dann tippt ihr einfach den Anfangsbuchstaben (bei ö = o, bei ü = u, bei ä = a) ein, und drückt dann mal Tab...

beim Beispiel "Öffentlich" wäre das dann

cd O -> Tab... das Terminal ergänzt selbstständig, falls kein anderer Ordner mit O anfängt. Bei Doppel-Tab würde iht sonst sehen welcher Ordner sonst noch mit O anfängt.

Allgemein ist es schwierig, wenn der Umlaut gleich der erste ist... wenn er mitten drin ist, ist es ja leicht, da es selten solche Übereinstimmungen mit einem anderen Ordner gibt...

vielleicht wisst ihr ja das alles, was ich mir eigentlich denke. Aber bevor man in der Shell rumspielt, ist das wohl immer noch der ienfachste weg, wenn man schon seine Ordner mit Umlauten bezeichnen muss ;)

PS: und der OSX-Ordner "Öffentlich" heisst im Terminal "Public"....
 

atl

Niederhelfenschwiler Beeriapfel
Registriert
04.11.04
Beiträge
842
Also die wenigsten Probleme habe ich mit Westeuropäisch (ISO Latin 1) oder auch Westeuropäisch (Windows Latin 1).

ByE...
 

Jan

Gast
Cyrics schrieb:
hmmm, ich frag mich ehrlich gesagt wo das Problem ist...
ihr könnt doch beim Terminal die Umlaute eintippen.
Die werden halt bloss als Escape-Befehl umschreiben.

in der GUI sind die Dateien/Ordner dann aber richtig mit den Umlauten bezeichnet.
Wenn ihr dann mit den Ordnern oder Dateien im Terminal arbeiten wollt (dann sollte man übrigens keine Umlaute nutzen, wenn man damit im Termnal arbeiten will ;) ), dann tippt ihr einfach den Anfangsbuchstaben (bei ö = o, bei ü = u, bei ä = a) ein, und drückt dann mal Tab...

beim Beispiel "Öffentlich" wäre das dann

cd O -> Tab... das Terminal ergänzt selbstständig, falls kein anderer Ordner mit O anfängt. Bei Doppel-Tab würde iht sonst sehen welcher Ordner sonst noch mit O anfängt.

Allgemein ist es schwierig, wenn der Umlaut gleich der erste ist... wenn er mitten drin ist, ist es ja leicht, da es selten solche Übereinstimmungen mit einem anderen Ordner gibt...

vielleicht wisst ihr ja das alles, was ich mir eigentlich denke. Aber bevor man in der Shell rumspielt, ist das wohl immer noch der ienfachste weg, wenn man schon seine Ordner mit Umlauten bezeichnen muss ;)

PS: und der OSX-Ordner "Öffentlich" heisst im Terminal "Public"....

Hallo Cyrics,

es scheint mir, dass du den Anfang dieses Themas nicht ganz mitbekommen hast.
Ich hatte bereits erwähnt, dass beim Tippen von deutschen Umlauten im Terminal
der Excape-Wert des Zeichens geschrieben wird.
Dies ist jedoch eine Fenstereinstellung und kann auch unterbunden werden.

Ich habe kein Problem damit einen Ordner oder eine Datei mit der Tab-Vervollständigung
zu finden sondern muss einen Ordner per Skript generieren können und leider ist es möglich,
dass der Ordnername auch Sonderzeichen beinhaltet.

Das mit dem Ordner namens "Öffentlich" war nur ein Bespiel, es hätte genauso "Ähnliches" sein
können. Ferner versuche ich mich ernsthaft mit diesem Problem zu beschäftigen und nicht
in der Shell "rumzuspielen".

Trotzdem danke ich dir für deinen Kommentar.

Der Jan
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Jan schrieb:
also ich habe das natürlich gleich mal ausprobiert,
leider bekomme ich bei einem UTF8 codiertem
shell script folgende Fehlermeldung beim Aufruf:

-bash: ./start.sh: cannot execute binary file

Das ist's dann noch nicht.

Du benutzt BBEdit oder so?
Du musst die Codierung "UTF-8 ohne BOM" verwenden.
Oder gleich TextEdit.

(UTF-8 *mit* BOM stellt der Datei einen 3 Byte grossen, binären Bang voran...den UTF-8 Tag eben...den mag die Shell nicht.)
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
In Deiner Shellkonfiguration kannst Du dies probieren:
Code:
LC_ALL=en_US.UTF-8
export LC_ALL

LANG=en_US.UTF-8
export LANG

Wahlweise auch mit de_DE.UTF-8 ;)
 

ulukaii

Idared
Registriert
22.02.07
Beiträge
28
...

letzte Antwort ist zwar ein bisschen her, aber weil ich gerade das selbe Problem hatte. (Unter SuSE Linux Enterprise Server 10)

ausführen oder in die /etc/profile.local einfügen:

Code:
export LANG=de_DE@euro
export LC_MESSAGES=de_DE@euro
export LC_CTYPE=de_DE@euro
 

Hobbes_

Gast
Allgemein hat ja MacMark mal ein gutes Tut dazu geschrieben: Wirklich praktisch für all diese Probleme mit den Umlauten:

Link

Gruss
psc

EDIT: Oh, ist ein aufgewärmter Uralt-Thread. Dennoch: Der Link auf MacMarks Tut hat seinen Platz :)