Linux 检查shell脚本得到的参数类型
我的shell脚本需要一些帮助。我有这个:Linux 检查shell脚本得到的参数类型,linux,bash,shell,glob,Linux,Bash,Shell,Glob,我的shell脚本需要一些帮助。我有这个: #!/bin/bash for i in $* do if [[ $i = *[a-zA-Z] ]] then echo $i contains just letters. elif [[ $i = *[a-zA-Z0-9] ]] then echo $i contains numbers and letters. else echo Error. done 例如,我希望结果是: $ ./scr
#!/bin/bash
for i in $*
do
if [[ $i = *[a-zA-Z] ]]
then echo $i contains just letters.
elif [[ $i = *[a-zA-Z0-9] ]]
then echo $i contains numbers and letters.
else
echo Error.
done
例如,我希望结果是:
$ ./script.sh abCd a9d a-b
abCd contains just letters.
a9d contains numbers and letters.
Error.
但我得到的在任何情况下都只包含字母
我也尝试了grep命令,但没有成功。您的正则表达式是错误的。请尝试以下操作:
#!/bin/bash
for i in $*
do
if [[ $i =~ ^[a-zA-Z]+$ ]]
then echo $i contains just letters.
elif [[ $i =~ ^[a-zA-Z0-9]+$ ]]
then echo $i contains numbers and letters.
else
echo Error.
fi
done
@汤姆很高兴我能帮忙。感谢您发布一个包含完整代码和有用测试用例的问题。给您的程序一点提示:第二种情况只检查字符串中是否至少有一个字符。因此,如果您只使用一个数字作为输入,它仍然会输出“9包含数字和字母”。当只使用一个数字作为输入时,有一个小小的语义问题。