#!/bin/bash
echo "$basename $0"
case $1 in
"" ) echo "default";;
*[!0-9]* ) echo "non-numeric";;
* ) echo "numeric";;
esac
分支一无参数
分之二非数字
分子三是数字
问题:
[1]*[!0-9]* 为什么能表示非数字,不知*号在此代表什么意思,跟通配符,正则表达式有关吗?
case 是按照通配符的方式匹配 (而不是正则表达式)。[!0-9] 匹配任何一个非0到9之间的字符。* 匹配任意字符串(包括空字符串)所以 *[!0-9]* 匹配任意一个字符串,只要这个字符串包含非0到9的字符。