如何检查参数在shell中是否包含单个字符

Zas*_*ito 5 shell grep arguments character

我正在尝试创建一个脚本来检查参数是否包含单个大写或小写字母,或者是否包含其他任何内容(例如数字或单词).

到目前为止完成了这件事:

if echo $1 | egrep -q '[A-Z]';
    then echo "Uppercase";
elif echo $1 | egrep -q '[a-z]';
    then echo "Lowercase";
else
    echo "FAIL";
fi 
Run Code Online (Sandbox Code Playgroud)

需要让它失败的不仅是它不是一个字母,而是如果我插入一个单词或2个字母.

Gil*_*not 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
Run Code Online (Sandbox Code Playgroud)
  • 我刚刚添加了特殊字符^& $,分别表示行首行尾
  • 没有必要egrepgrep就足够了