[BASH] Wyrażenia regularne

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
mariusz198787
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 123
Rejestracja: 19 maja 2010, 19:50
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Architektura: x86

[BASH] Wyrażenia regularne

Post autor: mariusz198787 »

Witam

Chcę poduczyć się wyrażeń regularnych. Napisałem tai skrypt

Kod: Zaznacz cały

#!/bin/bash

read zmienna

case $zmienna in
   "[0-9]") echo 'działa';;
   *) echo 'nie dziala'
Jednak ciągle wyświetla mi komunikat: nie działa (podczas wpisywania liczb)
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4681
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: [BASH] Wyrażenia regularne

Post autor: jacekalex »

Bash teoretycznie obsługuje wyrażenia regularne, ale jak chcesz się ich pouczyć, to lepiej do testowania możliwości "Perl Compatible Regullar Expression", bierz Perla.

Sznurki:
http://pl.wikibooks.org/wiki/Perl/Opis_ ... egularnych
http://wieluk.republika.pl/s/wzorce.html
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
mariusz198787
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 123
Rejestracja: 19 maja 2010, 19:50
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Architektura: x86

Re: [BASH] Wyrażenia regularne

Post autor: mariusz198787 »

Wiem, ze Perl obsługuje wyr. regularne (i to w dość prosty sposób), jednak zależy mi na bash'u.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [BASH] Wyrażenia regularne

Post autor: ethanak »

Bash nie obsługuje wyrażeń regularnych. Awk obsługuje wyrażenia regularne. Grep obsługuje. Parę innych programów obsługuje. Bash niestety nie.
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4681
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: [BASH] Wyrażenia regularne

Post autor: jacekalex »

ethanak pisze:Bash nie obsługuje wyrażeń regularnych. Awk obsługuje wyrażenia regularne. Grep obsługuje. Parę innych programów obsługuje. Bash niestety nie.
Mylisz się, obsługuje, jednak ta obsługa jest taka, jakby ją stolarz robił, dodatkowo brak sensownej obslugi tablic zwykłych i asocjacyjnych, relacji, itp, też daje w kość, jak się chce coś sensownego zrobić.
Nawiasem piszac, bash jest do prostych poleceń powłoki, a do programowania są języki programowania, a nie interpretery powłoki.

Np do takiego skrypta bash był za cienki:
http://jacekalex.sh.dug.net.pl/rssperl
A do tego wystarczył:
http://jacekalex.sh.dug.net.pl/cgstart
:rotfl:

Pozdrawiam
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
adammaj1
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 25 gru 2011, 12:37
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [BASH] Wyrażenia regularne

Post autor: adammaj1 »

#!/bin/bash


echo wpisz liczbę
read zmienna
echo zmienna = $zmienna

if [ "$zmienna" -lt 9 ]; then
echo działa
else
echo nie dziala
fi




zobacz http://bash.0x1fff.com/if-else
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość