Mailinglist Archive: opensuse-de (7975 mails)
| < Previous | Next > |
Re: bash-script: regexp in if, Syntax?
- From: Philipp Thomas <pthomas@xxxxxxx>
- Date: Sun, 21 Apr 2002 15:39:03 +0200
- Message-id: <j7g5cuognn4ctajph6imvd7t8c9nsh881k@xxxxxxx>
"Michael Rolli" <michael@xxxxxxxxx> [ 21.042002 12:54:13 +0200]:
Vorsicht, da ist noch ein Fallstrick verborgen, denn das funktioniert
zuverlässig nur in der POSIX (oder C) locale, genauer, wenn
LC_COLLATE=POSIX ist. NUr dann kommen Grossbuchstaben vor
Kleinbuchstaben. In der deutschen Locale, also wenn
LC_COLLATE=de_DE@euro o.Ä. gesetzt ist, gilt die deutsche lexikalische
Sortier-Reihenfolge, und in der werden Kleinbuchstaben wie
Grossbuchstaben behandelt.
Um auch für solche Fälle gewappnet zu sein, sollte man die POSIX
Zeichenklassen verwenden, also in deinem Fall z.B. [:lower:]. Näheres
dazu siehe
info '(bash.info.gz)Pattern Matching'
Philipp
Ich möchte nun testen, ob es sich nicht um einen Buchstaben aus A-Z
handelt. Wenn es sich nicht um A-Z handelt, soll # in die Variable.
Vorsicht, da ist noch ein Fallstrick verborgen, denn das funktioniert
zuverlässig nur in der POSIX (oder C) locale, genauer, wenn
LC_COLLATE=POSIX ist. NUr dann kommen Grossbuchstaben vor
Kleinbuchstaben. In der deutschen Locale, also wenn
LC_COLLATE=de_DE@euro o.Ä. gesetzt ist, gilt die deutsche lexikalische
Sortier-Reihenfolge, und in der werden Kleinbuchstaben wie
Grossbuchstaben behandelt.
Um auch für solche Fälle gewappnet zu sein, sollte man die POSIX
Zeichenklassen verwenden, also in deinem Fall z.B. [:lower:]. Näheres
dazu siehe
info '(bash.info.gz)Pattern Matching'
Philipp
| < Previous | Next > |