在bash脚本中切换功能

时间:2015-07-02 08:06:50

标签: bash scripting

使用语法为

的case语句
      case $variable-name  in

            pattern1)  command;;

            patternN)  command;;

            *)         command;;
       esac

这里" *)"用于默认情况下,其模式与任何情况都不匹配。如果我想匹配模式" *"并且进行乘法并且还应该有默认情况吗?

2 个答案:

答案 0 :(得分:5)

就这样逃避:

#!/bin/bash

variable-name="*"

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

或者你可以把*放在引号中。

答案 1 :(得分:1)

您可以使用*转义\*字符,或者如果您正在执行某些操作(例如加法,乘法等),则根据模式/字符的选择,最好使用数字表明操作。例如:

  1. 加成
  2. 减法
  3. 乘法
  4. 通过这样做你的case语句可以是这样的:

    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