PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash: Ist ä,ö,ü alfanumerisch/alfabetisch oder ist es nichts?



sutterp
09-02-2005, 04:29
Ein kleines Problem mit bash.

:confused: archive:~ # österreich="Austria"
-bash: österreich=Austria: command not found

Warum? Fängt doch mit einem alphabetic character an, und
_österreich="Austria"
-bash: _österreich=Austria: command not found
fängt doch mit einem underscore an.

:o man bash:
name A word consisting only of alphanumeric characters
and underscores, and beginning with an alphabetic
character or an underscore. Also referred to as an
identifier.

Kann sehr nützlich sein,
country="österreich"
eval countryx='$'${country}
country=$countryx
:) Jezt sollte Austria in country stehen. Tut's auch wenn keine Umlaute drin sind.

Wie bescheiss ichs?

Danke

Peter

t23
09-02-2005, 10:55
Hmm...
Ich hab da eben ein File mit Namen Österreich angelegt und per WinSCP auf die UNIX Kiste kopiert.
Also ich kann das File wunderbar handeln.
Ebenso mit nem Skript funzt das.
Woran das liegt?
Vielleicht an der Bash. Ich benutze ksh.

Joghurt
09-02-2005, 13:36
Er will eine Umgebungsvariable mit dem Namen Österreich setzen.

Dies geht, allerdings muss die bash auch wissen, dass du die deutsche Locale benutzt, so dass es "Ö" als Alphanumerischen Charakter bezeichnet.

export LC_ALL=de_ATein LC_CTYPE=de_AT würde auch reichen, aber so hast du auch gleich Fehlermeldungen etc. in deutschen, wenn installiert.

Um es klar zu machen:
$ locale
...
LC_CTYPE="C"
...
LC_ALL=C
$ Öööööö="Föö"
bash: Öööööö=Föö: command not found
$ LC_ALL=de_AT #oder export LC_ALL=de_AT, damit es auch für aufgerufene Programme gilt
$ Öööööö="Föö"
$ echo $Öööööö
Föö
$

sutterp
09-02-2005, 14:24
Vielen dank, Joghurt.

Dies ist genau was ich gesucht habe.

Peter