Bash 为什么要用!然后逃离符号吗?
这句话:Bash 为什么要用!然后逃离符号吗?,bash,shell,unix,Bash,Shell,Unix,这句话: #!/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 有在开始处,它对[…]中存在的所有字符或范围进行求反。在这种情况下,它意味着任何
#!/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
有代码>在开始处,它对[…]
中存在的所有字符或范围进行求反。在这种情况下,它意味着任何
- 没有空间
- 不在
a-z范围内
- 不在
A-Z范围内
还要注意转义是针对\
旁边的空格,而不是前面的编码>
以避免分词。测试您的表达,找出当您删除困扰您的部分时会发生什么。很高兴知道它成功了,
*[!\ a-zA-Z]*