如何在Bash case语句中测试一个空字符串?

前端之家收集整理的这篇文章主要介绍了如何在Bash case语句中测试一个空字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Bash脚本,根据变量的值执行操作。 case语句的一般语法是:
  1. case ${command} in
  2. start) do_start ;;
  3. stop) do_stop ;;
  4. config) do_config ;;
  5. *) do_help ;;
  6. esac

如果没有提供命令,我想执行默认例程,如果命令无法识别,则执行do_help。我试图省略case值这样:

  1. case ${command} in
  2. ) do_default ;;
  3. ...
  4. *) do_help ;;
  5. esac

结果是可预测的,我想:

  1. Syntax error near unexpected token `)'

然后我试着用正规表达式使用我最好的镜头:

  1. case ${command} in
  2. ^$) do_default ;;
  3. ...
  4. *) do_help ;;
  5. esac

有了这个,一个空的$ {command}落到了* case。

我想做不可能的事吗?

case语句使用globs,而不是regexes,并坚持使用完全匹配。

所以空字符串像往常一样被写为“”或“’:

  1. case "$command" in
  2. "") do_empty ;;
  3. something) do_something ;;
  4. prefix*) do_prefix ;;
  5. *) do_other ;;
  6. esac

猜你在找的Bash相关文章