2017-01-27 40 views
1
#!/bin/sh 
echo "Enter a name" 
read name 
    case "$name" in 
      *[!\ a-zA-Z]*) echo "Can contain only alphabets" >/dev/tty 
      continue;; 
      *) echo "Good entry" ;; 
    esac 
+1

在http://regexr.com/上測試您的表情,並找出當您移除困擾您的部分時發生的情況。 –

回答

1

該表達式:

*[!\ a-zA-Z]* 

在其中執行所有字符否定或本內[...]範圍開始有!。在這種情況下,它意味着什麼,是

  • 沒有一個空間
  • 不是在a-z
  • 的範圍不是在A-Z

範圍還要注意,逃逸是一個空格到\不適用於前面的!以避免分詞。

+1

是的。我檢查並得到它。 –

+0

很高興知道它解決了[[您可以點擊答案左上角的勾號**標記答案](http://meta.stackexchange.com/a/5235/160242) – anubhava