当前位置: 技术问答>linux和unix
shell脚本中的一个错误
来源: 互联网 发布时间:2016-10-12
本文导语: 请问各位: 我在linux写了一个shell脚本: #!/bin/bash echo "Hit a key, then hit return." read Keypress case "$Keypress" in [A-Z] ) echo "Uppercase letter";; [a-z] ) echo "Lowercase letter";; [0-9] ) echo "Digit";; * ) echo "Punctuation, whit...
请问各位:
我在linux写了一个shell脚本:
#!/bin/bash
echo "Hit a key, then hit return."
read Keypress
case "$Keypress" in
[A-Z] ) echo "Uppercase letter";;
[a-z] ) echo "Lowercase letter";;
[0-9] ) echo "Digit";;
* ) echo "Punctuation, whitespace, or other";;
esac
在运行的时候
输入A-Z,a-y这里面的任何一个字符的时候尽然打印的都是Uppercase letter,
只有z时才是Lowercase letter,请问各位错在哪里,谢谢
我在linux写了一个shell脚本:
#!/bin/bash
echo "Hit a key, then hit return."
read Keypress
case "$Keypress" in
[A-Z] ) echo "Uppercase letter";;
[a-z] ) echo "Lowercase letter";;
[0-9] ) echo "Digit";;
* ) echo "Punctuation, whitespace, or other";;
esac
在运行的时候
输入A-Z,a-y这里面的任何一个字符的时候尽然打印的都是Uppercase letter,
只有z时才是Lowercase letter,请问各位错在哪里,谢谢
|
你是什么linux。
另外 你的代码和你发的这个一致吗 我怀疑你自己的代码里是不是有不可见字符 中文字符啥的
你重新写个shell 照着你帖子里的这个代码写 或者直接复制 然后再试试?
|
我复制你的代码 测试了一下 一点问题也没有
$ cat ./esac.sh
#!/bin/bash
echo "Hit a key, then hit return."
read Keypress
case "$Keypress" in
[A-Z] ) echo "Uppercase letter";;
[a-z] ) echo "Lowercase letter";;
[0-9] ) echo "Digit";;
* ) echo "Punctuation, whitespace, or other";;
esac
$ ./esac.sh
Hit a key, then hit return.
e
Lowercase letter
$ ./esac.sh
Hit a key, then hit return.
H
Uppercase letter
$ ./esac.sh
Hit a key, then hit return.
a
Lowercase letter
$ ./esac.sh
Hit a key, then hit return.
9
Digit
$ ./esac.sh
Hit a key, then hit return.
$
Punctuation, whitespace, or other
|
我试了下,不管输啥都是Uppercase letter
administrator@ubuntu:~$ ./test
Hit a key, then hit return.
z
Uppercase letter
administrator@ubuntu:~$ ./test
Hit a key, then hit return.
z
Uppercase letter
administrator@ubuntu:~$ ./test
Hit a key, then hit return.
L
Uppercase letter
administrator@ubuntu:~$
administrator@ubuntu:~$ ./test
Hit a key, then hit return.
z
Uppercase letter
administrator@ubuntu:~$ ./test
Hit a key, then hit return.
z
Uppercase letter
administrator@ubuntu:~$ ./test
Hit a key, then hit return.
L
Uppercase letter
administrator@ubuntu:~$
|
问题解决,修改源吗如下
#!/bin/bash
2 echo "Hit a key, then hit return."
3 read Keypress
4 case "$Keypress" in
5 ['A'-'Z'] ) echo "Uppercase letter";;
6 ['a'-'z'] ) echo "Lowercase letter";;
7 ['0'-'9'] ) echo "Digit";;
8 * ) echo "Punctuation, whitespace, or other";;
9 esac
前面的数字是行号,注意不要输上
#!/bin/bash
2 echo "Hit a key, then hit return."
3 read Keypress
4 case "$Keypress" in
5 ['A'-'Z'] ) echo "Uppercase letter";;
6 ['a'-'z'] ) echo "Lowercase letter";;
7 ['0'-'9'] ) echo "Digit";;
8 * ) echo "Punctuation, whitespace, or other";;
9 esac
前面的数字是行号,注意不要输上
|
我试了lz最初的代码,也是没问题的..
|
发贴不结贴的家伙
|
bash --version
是不是版本的问题
是不是版本的问题