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 的选择进行某些操作,例如加法、乘法等,则更好使用数字来表示操作。例如:
- 加法
- 减法
- 乘法
- 师
所以通过这样做你的案例陈述可以是这样的:
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
使用语法为
的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 的选择进行某些操作,例如加法、乘法等,则更好使用数字来表示操作。例如:
- 加法
- 减法
- 乘法
- 师
所以通过这样做你的案例陈述可以是这样的:
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