bash 脚本中的开关功能

Switch functionality in bash script

使用语法为

的case语句时
      case $variable-name  in

            pattern1)  command;;

            patternN)  command;;

            *)         command;;
       esac

此处“*)”表示模式与任何大小写都不匹配的默认大小写。如果我想匹配模式“*”并进行乘法运算并且还应该有默认大小写怎么办?

像这样转义:

#!/bin/bash

variable-name="*"

case $variable-name in
    \*) echo "Star";;
    *) echo "Default";;
esac

或者您可以将 * 放在引号中。

您可以使用 \* 转义 * 字符,或者如果您正在根据 pattern/character 的选择进行某些操作,例如加法、乘法等,则更好使用数字来表示操作。例如:

  1. 加法
  2. 减法
  3. 乘法

所以通过这样做你的案例陈述可以是这样的:

case $variable-name in
    1)sum=$((n1 + $n2))
     echo "Sum = $sum";;
    2)difference=$((n1 - n2))
     echo "Sub = $difference";;
    3)product=$(( n1 * n2 ))
     echo "Mul = $product";;
    4)quotient=$(( n1 / n2 ))
     echo "Div = $quotient";;
    *)echo "Invalid choice";;
esac