假设我想读取两个输入,比如 x 和 y。根据它们的值,我想在 Bash 脚本中执行 switch case。
说 4 种输入组合是
x=0
, y=0
, x=0
, y=1
, x=1
, y=0
, x=1
, y=1
. 但我不知道如何使用脚本来做到这一点。我已经尝试过代码,但它得到了语法错误。是否可以在 Bash 脚本的 switch case 中组合两个条件?
echo "enter x"
read x
echo "enter y"
read y
case "$x" "$y" in
"zero" "zero") echo "condtion 1"
;;
"zero" "one") echo "conditon 2"
;;
"one" "zero" ) echo "condition 3"
;;
"one" "one") echo "condition 4"
;;
esac
最佳答案
你可以想到$x$y
作为二进制数。
#! /bin/bash
read -p 'enter x: ' x
read -p 'enter y: ' y
case $((2#$x$y)) in
0) echo 'condition 1';;
1) echo 'condition 2';;
2) echo 'condition 3';;
3) echo 'condition 4';;
esac
这最多适用于 64 种不同的状态:$ echo $((64#11))
65
关于bash - 是否可以在 Bash 脚本的 switch case 中组合两个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69070662/