Strona 1 z 1

[BASH] Wyrażenia regularne

: 11 maja 2013, 21:15
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)

Re: [BASH] Wyrażenia regularne

: 11 maja 2013, 22:21
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

Re: [BASH] Wyrażenia regularne

: 11 maja 2013, 22:31
autor: mariusz198787
Wiem, ze Perl obsługuje wyr. regularne (i to w dość prosty sposób), jednak zależy mi na bash'u.

Re: [BASH] Wyrażenia regularne

: 11 maja 2013, 22:34
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.

Re: [BASH] Wyrażenia regularne

: 11 maja 2013, 23:06
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:

Re: [BASH] Wyrażenia regularne

: 16 maja 2013, 20:46
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