Method 1:
Copy codeThe Code is as follows: echo 'echo {a. z} ''echo {A. Z}'>/tmp/letterfile
While read-p "please input a letter:" letter
Do
('Awk-v var = "$ letter" 'In in {print length (var)} ''= 1 )) & grep-q $ letter/tmp/tmpfile & break
Done
Rm-f/tmp/letterfile
Echo "you input letter $ letter"
[Root @ station1 ~] # Cat a. sh
Copy codeThe Code is as follows: echo 'echo {a. z} ''echo {A. Z}'>/tmp/letterfile
While read-p "please input a letter:" letter
Do
('Awk-v var = "$ letter" 'In in {print length (var)} ''= 1 )) & grep-q $ letter/tmp/tmpfile & break
Done
Rm-f/tmp/letterfile
Echo "you input letter $ letter"
[Root @ station1 ~] # Chmod + x a. sh
[Root @ station1 ~] #./A. sh
Please input a letter: 123
Please input a letter: abc
Please input a letter: 4
Please input a letter :&
Please input a letter :(
Please input a letter:
You input letter
[Root @ station1 ~] #
Initially, use expr length $ letter to replace wk-v var = "$ letter" 'In in {print length (var)} '. However, when you enter special characters such, an error is reported.
As follows:
[Root @ station1 ~] # Cat data
Copy codeThe Code is as follows: while read-p "please input a letter:" letter
Do
('Expr length $ letter '= 1) & expr $ letter: [[: alnum:]>/dev/null & break
Done
Echo "you input letter $ letter"
[Root @ station1 ~] # Bash data
Please input a letter: 123
Please input a letter: abc
Please input a letter:
You input letter
[Root @ station1 ~] # Bash data
Please input a letter :*
Expr: syntax error
Data: line 3: (: = 1: syntax error: operand expected (error token is "= 1 ")
Please input a letter:
Method 2:
Copy codeThe Code is as follows: while read-p "please input a letter:" letter
Do
[['Echo $ letter | awk'/^ [[: alpha:] $/{print "1"} ''-eq 1] & break
Done
Echo "you input letter $ letter"
As follows:
[Root @ station1 ~] # Cat B. sh
Copy codeThe Code is as follows: while read-p "please input a letter:" letter
Do
[['Echo $ letter | awk'/^ [[: alpha:] $/{print "1"} ''-eq 1] & break
Done
Echo "you input letter $ letter"
[Root @ station1 ~] # Chmod + x B. sh
[Root @ station1 ~] #./B. sh
Please input a letter :*
Please input a letter: abc
Please input a letter: 234
Please input a letter :)
Please input a letter: T
You input letter T
[Root @ station1 ~] #