当前位置: 首页 > 工具软件 > Casein > 使用案例 >

shell中使用case以及shift处理命令行参数

高迪
2023-12-01

shell或bash使用case与shift处理多个命令行参数

1. shift命令
  • 在bash中定义了9个位置变量,分别使用$1,$2,…$9,借助 shift 命令可以访问多于9个的命令行参数。
  • shift命令一次移动参数的个数由该命令后的数字参数决定,如shift 2 可以将命令行参数 $3 移动至 $1 。
2. shell中的case语句
  • case语句特点
    • 以case…esac为标志;

    • 每个模式以右括号 “)” 结束,匹配模式可以使用 [0-9] 以及 “|” 等通配符;

    • 双分号 “;;” 表示命令序列结束;

    • 默认模式使用*)表示,在不满足前面的模式后,执行默认模式后的命令序列;

      case $变量名 in
      模式1)
      命令序列1
      ;;
      模式2)
      命令序列2
      ;;
      *)
      默认执行的命令序列
      ;;
      esac
      
3.实例
  • 使用while循环来判断命令行参数个数,而后结合case以及shift命令处理参数赋值给不同的成员变量。

    while [[ $# -gt 0 ]]
    do
    key="$1"
    case $key in 
    	-tool)
    	SIMULATOR="$2"
    	shift
    	;;
    	-test)
    	TEST="$2"
    	shift
    	;;
    	-n)
    	TEST_NUM="$2"
    	shift
    	;;
    	-o)
    	OUT_DIR="$2"
    	shift
    	;;
    	-seed)
    	SEED="$2"
    	shift
    	;;
    	*)
    	echo "Error: "
    	echo "      Unknow Options -> $1"
    	echo ""
    	echo "<<<Usage:"
    	echo "        sh demo.sh [-test base_test] [-n 10] [-o ./OUT] [-seed 123] [-tool vcs]"
    	exit 1
    	;;
    esac
    shift
    done
    
    
 类似资料: