gpt4 book ai didi

bash - 确定 Bash 变量是否是多个值之一

转载 作者:行者123 更新时间:2023-11-29 09:01:56 25 4
gpt4 key购买 nike

假设 Bash 变量 $x 有三个有效值:foobarbaz .如何编写表达式来确定 $x 是否是这些值之一?例如,在 Python 中,可以这样写:

x in ('foo', 'bar', 'baz')

是否有 Bash 等价物,或者是否有必要执行三个比较?同样,在 Python 中,可以这样写:

x == 'foo' or x == 'bar' or x == 'baz'

在 Bash 中表达上述内容的正确方法是什么?

最佳答案

最简单的方法:

case $x in
foo|bar|baz) echo is valid ;;
*) echo not valid ;;
esac

有点复杂

shopt -s extglob
if [[ $x == @(foo|bar|baz) ]]; then
echo is valid
else
echo not valid
fi

更复杂:

is_valid() {
local valid=( foo bar baz )
local value=$1
for elem in "${valid[@]}"; do
[[ $value == $elem ]] && return 0
done
return 1
}

if is_valid "$x"; then
echo is valid
else
echo not valid
fi

关于bash - 确定 Bash 变量是否是多个值之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23033561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com