case语句中的变量赋值(bash)

hiz*_*zki 3 bash command-line switch-statement

我试图解析我的bash脚本中的传入选项,并将值保存在变量中.这是我的代码:

#!/bin/bash 

while getopts "H:w:c" flag
do 
#  echo $flag $OPTIND $OPTARG
    case $flag in
    H) host = "$OPTARG"
    ;;
    w) warning = "$OPTARG"
    ;;
    c) critical = "$OPTARG"
    ;;
    esac
done
Run Code Online (Sandbox Code Playgroud)

但是,'case'中的语句必须是命令行命令,所以我无法进行所需的赋值.这样做的正确方法是什么?

Ada*_*iss 9

删除=运算符周围的空格:

case "$flag" in
  H) host="$OPTARG" ;;
  w) warning="$OPTARG" ;;
  c) critical="$OPTARG" ;;
esac
Run Code Online (Sandbox Code Playgroud)