Jestem nowy na UNIX, mając tylko zaczął go na dzisiaj pracy, ale doświadczenie z Java i mają następujący kod:Sprawdzanie ciąg aby sprawdzić, czy zawiera ona postać numeryczną w UNIX
#/bin/bash
echo "Please enter a word:"
read word
grep -i $word $1 | cut -d',' -f1,2 | tr "," "-"> output
to działa W porządku, ale teraz muszę sprawdzić, czy odczytano słowo, czy zawiera ono tylko litery i czy ma znaki numeryczne w druku "Nieprawidłowe dane wejściowe!" i poproś o ponowne wprowadzenie. Zakładam, że wyrażenia regularne z instrukcją if byłyby prostym sposobem na zrobienie tego, ale nie mogę zrozumieć, jak używać ich w systemie UNIX, ponieważ jestem przyzwyczajony do ich aplikacji Java. Jakakolwiek pomoc w tym przypadku byłaby ogromnie doceniona, ponieważ nie mogłem znaleźć pomocy przy wyszukiwaniu jako wszystkich rozwiązań z wyrażeń regularnych w linuxie, które znalazłem tylko w przypadku, gdy był albo numeryczny, albo nie.
'-q' na grep nie jest przenośne poza GNU.Jeśli chcesz mieć pełną przenośność (jedyny powód, aby kiedykolwiek używać sh), użyj '>/dev/null 2> & 1' – Daenyth
+1, To jest ładne, naprawdę rozwiązanie UNIX, proste i czyste. – Anders
@Daenyth masz absolutną rację, a nawet zrobiłem to, kiedy wypróbowałem to w moim systemie, a następnie dodałem '-q', kiedy opublikowałem swoją odpowiedź. Wydaje mi się, że byłem GNU-tylko zbyt długo. –