我正在尝试创建一个脚本来检查参数是否包含单个大写或小写字母,或者是否包含其他任何内容(例如数字或单词)。
到目前为止完成了这件事:
if echo $1 | egrep -q '[A-Z]';
then echo "Uppercase";
elif echo $1 | egrep -q '[a-z]';
then echo "Lowercase";
else
echo "FAIL";
fi
不仅要让它失败,不仅是因为它不是一封信,而且如果我插入一个字或两个字母。
答案 0 :(得分:2)
你非常接近!
if echo $1 | egrep -q '^[A-Z]$';
then echo "Uppercase";
elif echo $1 | egrep -q '^[a-z]$';
then echo "Lowercase";
else
echo "FAIL";
fi
^
& $
,分别表示行的开头& 行尾 egrep
,grep
就足够了答案 1 :(得分:2)
使用case
:
case "$1" in
[a-z]) echo First argument is a lower case letter;;
[A-Z]) echo First argument is an upper case letter;;
*) echo First argument is not a single letter;;
esac
答案 2 :(得分:1)
如果你使用bash,
if [[ $1 == [[:upper:]] ]]; then
echo "$1 is a single capital letter"
elif [[ $1 == [[:lower:]] ]]; then
echo "$1 is a single lowercase letter"
else
echo "$1 is not a letter or is more than 1 char"
fi
双等于告诉bash匹配右侧的模式。