[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] bash/regex-Problem



Am Freitag, den 05.05.2006, 16:35 +0200 schrieb Christian Schmidt:

> ich habe mich hier irgendwie festgehirnt. Und zwar moechte ich in
> einem Shellskript mittels einer eigentlich einfach sein muessenden
> if-Abfrage ueberpruefen, ob ein String den Inhalt a oder b hat.
> Das mit dem "oder" bekomme ich aber nicht auf die Reihe, und passende
> Suchbegriffe fuer Google scheinen sich mir heute auch zu entziehen.

man test
Advanced Bash Scripting Guide (LDP)

> Minimalbeispiel:
> 
> #! /bin/sh
> leiter="schmidt"
> if [ "$leiter" = "[schulze|schmidt]" ]; then
>   echo "Stimmt"
>   else
>   echo "Stimmt nicht"
> fi
> 
> Das Skript gibt immer "Stimmt nicht" aus, und ich blicke einfach nicht
> mehr warum.

Das ist ein String-Vergleich und "$leiter" != "[schulze|schmidt]". Was
du willst, sieht eher so aus:

if [ "$leiter" = "schulze" -o "$leiter" = "schmidt" ]; then [..]

oder 

if [ "$leiter" = "schulze" ] || [ "$leiter" = "schmidt" ]; then [..]

Bin kein Bash-Profi, so dass ich eine mögliche Regex dafür außen vor
lassen will. Aber o.g. Anleitung enthält auch ein Kapitel über Reguläre
Ausdrücke.

MfG Daniel



Reply to: