Tôi mới để UNIX, chỉ có bắt đầu nó tại nơi làm việc ngày hôm nay, nhưng có kinh nghiệm với Java, và có đoạn mã sau:Kiểm tra một chuỗi để xem nếu nó chứa ký tự số trong UNIX
#/bin/bash
echo "Please enter a word:"
read word
grep -i $word $1 | cut -d',' -f1,2 | tr "," "-"> output
tác phẩm này tốt, nhưng những gì tôi bây giờ cần làm là để kiểm tra khi từ được đọc, rằng nó không chứa gì ngoài chữ cái và nếu nó có ký tự số trong in "đầu vào không hợp lệ!" và yêu cầu họ nhập lại. Tôi giả định các biểu thức chính quy với một câu lệnh if sẽ là cách dễ dàng để làm điều này nhưng tôi không thể có được đầu xung quanh cách sử dụng chúng trong UNIX như tôi đã quen với ứng dụng Java của chúng. Bất kỳ trợ giúp với điều này sẽ được đánh giá rất nhiều, vì tôi không thể tìm thấy sự giúp đỡ khi tìm kiếm như tất cả các giải pháp với các biểu thức thông thường trong linux tôi thấy chỉ xử lý nếu nó hoặc là tất cả các số hay không.
'-q' để grep không được di chuyển bên ngoài GNU.Nếu bạn muốn tính di động đầy đủ (Lý do duy nhất để sử dụng sh), sử dụng '>/dev/null 2> & 1' – Daenyth
+1, Đây là một giải pháp UNIX, đơn giản và sạch sẽ. – Anders
@ Bạn chắc chắn bạn hoàn toàn đúng, và tôi thậm chí đã làm điều đó khi tôi thử nó trên hệ thống của tôi, sau đó thêm '-q' khi tôi đăng câu trả lời của mình. Dường như tôi đã chỉ là GNU quá lâu. –