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]:

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 >
Follow Ups
References