IF Vergleich

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: IF Vergleich

Beitrag von gms » 02.09.2009 15:42:25

hikaru hat geschrieben:
Danielx hat geschrieben:Hm, das funktioniert bei mir irgendwie nicht.
Auf dem openSuse 10.2 mit bash 3.1.17 vor dem ich hier sitze funktioniert es syntaktisch und matcht Hex-Zahlen.
korrekt ( funktioniert aber bei neueren Bashversionen nicht) und es matcht auch NICHT-Hex-Zahlen

Code: Alles auswählen

if [[  "$var1" =~ "[0-9A-F]+" ]]
diese Bedingung ist erfüllt, sobald in $var1 auch nur eine Ziffer oder ein Buchstabe zwischen A-F vorkommt, also auch bei "XAY", oder "Z1X"
edit wenn man die Quotes escapt, würde es funktionieren ( dann sind sie Teil der Regex ), also so:

Code: Alles auswählen

 if [[ \"$var1\" =~ \"[0-9A-F]+\" ]]; then


Im Prinzip hat pinguino doch noch die richtige ( Regex-) Lösung gefunden, zum Vergleich befinden sich in meinem ersten Beitrag hier in diesem Thread beide Lösungen, sowohl über Regex, als auch über Pattern Matching:
gms hat geschrieben:
hikaru hat geschrieben:Du prüfst hier auf eine Regex, da brauchst du den Operator "=~".
entweder mit Regex

Code: Alles auswählen

gms1 ~ # cat y.sh
#!/bin/bash
isnumber() {
  if [[ "$1" =~ ^[0-9]+$ ]]; then
    echo "$1 is a number"
  else
    echo "$1 is NOT a number"
  fi
}

isnumber 123
isnumber off
gms1 ~ # bash y.sh
123 is a number
off is NOT a number
oder mit Pattern Matching

Code: Alles auswählen

gms1 ~ # cat x.sh
#!/bin/bash

shopt -s extglob

isnumber() {
  if [[ $1 == +([0-9]) ]]; then
    echo "$1 is a number"
  else
    echo "$1 is NOT a number"
  fi
}

isnumber 123
isnumber off
gms1 ~ # bash x.sh
123 is a number
off is NOT a number
gms1 ~ #                
Gruß
gms
Ist ein bißchen mühsam hier, wenn keiner mehr liest, was die anderen schreiben

Gruß
gms

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: IF Vergleich

Beitrag von Danielx » 02.09.2009 22:34:35

gms hat geschrieben:wenn keiner mehr liest, was die anderen schreiben
Das trifft sicher nicht zu.

Gruß,
Daniel

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: IF Vergleich

Beitrag von gms » 03.09.2009 00:29:21

Danielx hat geschrieben:
gms hat geschrieben:wenn keiner mehr liest, was die anderen schreiben
Das trifft sicher nicht zu.
das ist zu hoffen. Es nervt jedenfalls besonders, wenn ein Threadstarter einer Anfängerfrage, nicht bereit ist sich den geposteten Code einmal gründlich anzuschauen, stattdessen lieber unrichtige Behauptungen aufstellt, von denen er nicht einmal durch Zitate aus der Dokumentation abzubringen ist, selbst gestrickte Lösungen präsentiert, die nicht einmal den eigenen Testcases standhalten, ... naja was solls, jeder wie er meint

@Danielx
Ich denke nicht, daß du dich tatsächlich angesprochen gefühlt hast, ansonsten möchte ich mich dafür entschuldigen

Gruß
gms

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: IF Vergleich

Beitrag von Danielx » 03.09.2009 00:42:57

gms hat geschrieben:Ich denke nicht, daß du dich tatsächlich angesprochen gefühlt hast
Da hast du recht, ich habe schon verstanden, was du damit sagen wolltest.
Vielleicht hätte ein " :wink: " von mir das etwas deutlicher gemacht.

Das hat übrigens erheblich zu meiner Bemerkung beigetragen:
gms hat geschrieben:das klingt vielleicht nach Wortglauberei
:mrgreen:

Gruß,
Daniel

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: IF Vergleich

Beitrag von gms » 03.09.2009 07:56:21

Danielx hat geschrieben: Das hat übrigens erheblich zu meiner Bemerkung beigetragen:
gms hat geschrieben:das klingt vielleicht nach Wortglauberei
:mrgreen:
:mrgreen: das kommt anscheinend nicht von "Glaube"

Antworten