回 帖 发 新 帖 刷新版面

主题:初学linux。帮忙看看这个怎么回事呢?

#isshell

char=$1

case "$char"
in

  [_a-zA-Z][_0-9a-zA-Z]* ) echo "yes";;
  * ) echo "no";;

esac



脚本是打算检测输入变量是否是合法的shell变量名。shell变量名以字母或下划线字符开始,后面跟0个或者若干个字母数字或下划线字符。
此脚本可以正确检测两个或多个字母,但是不能检测单个字母字符。比如输入./isshell c .输出的是“no“,为什么呢?应该输出yes的

回复列表 (共1个回复)

沙发

#isshell

char=$1

case "$char"
in

  [_a-zA-Z][_0-9a-zA-Z]* ) echo "yes";;
  [_a-zA-Z]* ) echo "yes";;
  * ) echo "no";;

esac
 

我来回复

您尚未登录,请登录后再回复。点此登录或注册