justman10000
Goto Top

Bash - Listenabruf

Hi, ich schreibe gerade ein Script, habe jedoch ein Problem! Ich würde gerne eine Liste von Versionen bereitstellen... Die if Kette soll dann prüfen, ob das input eine dieser Versionen entspricht! Beispiel:

Wir haben die Versionen 1.0, 2.6, 5.87 und 9.3. Nun gebe ich jedoch 4.33 ein, das Script gibt dann über echo eine Nachricht aus... Gebe ich jedoch 9.3 ein, wird dann der jeweilige Code ausgeführt...

Content-Key: 3919228301

Url: https://administrator.de/contentid/3919228301

Printed on: April 24, 2024 at 06:04 o'clock

Mitglied: 3803037559
Solution 3803037559 Sep 12, 2022, updated at Sep 13, 2022 at 08:42:58 (UTC)
Goto Top
Bidde
https://stackoverflow.com/questions/3685970/check-if-a-bash-array-contai ...
#!/bin/bash
array=(1.0 2.6 5.87 9.3)
[[ ${array[*]} =~ 9\.3 ]] && echo gefunden || echo nicht gefunden

Cheers
certguy
Member: erikro
erikro Sep 13, 2022 at 08:35:35 (UTC)
Goto Top
Moin,

hilfreich wäre, wenn Du das Skript mal postest.

Liebe Grüße

Erik
Member: Justman10000
Justman10000 Sep 13, 2022 updated at 14:48:02 (UTC)
Goto Top
Zitat von @3803037559:

Bidde
https://stackoverflow.com/questions/3685970/check-if-a-bash-array-contai ...
#!/bin/bash
array=(1.0 2.6 5.87 9.3)
[[ ${array[*]} =~ 9\.3 ]] && echo gefunden || echo nicht gefunden

Cheers
certguy

Vielen dank 🙂! Doch wofür steht das \.?
Mitglied: 3803037559
3803037559 Sep 13, 2022 updated at 14:50:40 (UTC)
Goto Top
Zitat von @Justman10000:
Vielen dank 🙂! Wofür steht das \.?
Der Ausdruck dort muss Regular Expression Syntax entsprechen und ein einfacher Punkt ist in Regex Syntax nunmal der Platzhalter für ein beliebiges Zeichen, muss deswegen korrekterweise mit Backslash escaped werden, sonst würde es auch einen String wie "9z3" im Array matchen.
Member: Justman10000
Justman10000 Sep 13, 2022 updated at 14:50:47 (UTC)
Goto Top
Zitat von @3803037559:

Zitat von @Justman10000:
Vielen dank 🙂! Wofür steht das \.?
Der Ausdruck dort muss Regular Expression Syntax entsprechen und ein einfacher Punkt ist in Regex Syntax nunmal der Platzhalter für ein beliebiges Zeichen, muss deswegen escaped werden, sonst würde es auch einen String wie "9z3" matchen.

Wie jetzt? Also, wenn irgendwas vom Array im Input ist, wird die Kette getriggert?
Mitglied: 3803037559
3803037559 Sep 13, 2022 updated at 14:59:55 (UTC)
Goto Top
Zitat von @Justman10000:
Wie jetzt? Also, wenn irgendwas vom Array im Input ist, wird die Kette getriggert?
Nein, lies meinen Absatz nochmal. Der Punkt hat in Regex Syntax eine besondere Bedeutung, sollte also escaped werden weil er für ein "beliebiges einzelnes Zeichen" steht.
Lesenswert dazu:
Regular Expressions Tutorial
Check if a string matches a regular expression