首页 > linux > linux的switch命令(case)

linux的switch命令(case)

作者:bin

在编写shell脚本时,经常会遇到,在一组可能的值中找到特定的值,这种情况下就会写出很多个if-then-else语句

这时我们可以使用case命令进行处理

case var in

parttern 1 | parttern2) commands1;;

parttern 3) commands2;;

*) commands3;;

esac

使用通配符*可以捕获所有与已知模式不匹配的值;

 

应用实例:

命令 ./test.sh -au zengbin -p 123456

使用-a -u -p等参数进行参数的传递(shift将$2变为$1,$3变为$2,依次往前,$0依然是文件名字)

while [ -n "$1" ]
do
   case "$1" in 
       -a) echo "a命令";;
       -u) echo "用户名为$2"
           shift;;
       -p) echo "密码为$2"
           shift;;
       --) shift
       break;;
      *) echo "未知命令$1";;
  esac
  shift
done

还可以使用如下方式简化(使用getopts命令可以”选项,参数间不用空格”:./test.sh -auzengbin -p123456)

#!/bin/bash
 while getopts :au:p: opt
 do
     case "$opt" in
        a) echo "a命令";;
        u) echo "用户名为${OPTARG}";;
        p) echo "密码为${OPTARG}";;
        *) echo "未知命令$opt";;
     esac
 done

您必须 [ 登录 ] 才能发表留言!