3

我想测试我的bash脚本中的参数是否是 5 位整数。

if [ "$1" == [0-9][0-9][0-9][0-9][0-9] ]; then
    echo "first arg is 5 digits"
else
    echo "not 5 digits"

这对我不起作用,有没有更简单的方法可以做到这一点,即使用该expr功能?

4

3 回答 3

4

见:CONDITIONAL EXPRESSIONS_man bash

if [[ "$1" =~ ^[0-9]{5}$ ]]; then
    echo "first arg is 5 digits"
else
    echo "not 5 digits"
fi
于 2013-01-25T23:46:53.370 回答
4

测试这种表达式时必须使用双括号。

于 2013-01-26T00:14:34.777 回答
0
case "$1" in
  [0-9][0-9][0-9][0-9][0-9]) echo "first arg is 5 digits" ;;
  *) echo "not 5 digits" ;;
esac
于 2013-01-25T23:47:45.343 回答