2017-01-27 3 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

Testen Sie Ihren Ausdruck auf http://regexr.com/ und finden Sie heraus, was passiert, wenn Sie das Teil entfernen, das Sie stört. –

Antwort

1

Dieser Ausdruck:

*[!\ a-zA-Z]* 

Hat ! zu Beginn die Negation aller Zeichen tut oder innerhalb [...] vorhanden reicht. In diesem Fall bedeutet es etwas, die

  • kein Raum
  • nicht im Bereich von a-z
  • nicht im Bereich von beachten Sie für den Raum A-Z

Auch das Entkommen nächsten ist zu \ nicht für das vorangehende !, um Wortaufspaltung zu vermeiden.

+1

ja. Ich habe nachgesehen und verstanden. –

+0

Gut zu wissen, dass es funktioniert hat [Sie können die Antwort als akzeptiert markieren, indem Sie auf ** Häkchen ** oben links in dieser Antwort klicken] (http://meta.stackexchange.com/a/5235/160242) – anubhava

Verwandte Themen