如何检查BASH列表中是否存在变量

我试图用bash编写脚本来检查用户输入的有效性。

我想将输入(例如变量x)与有效值列表进行匹配。

我目前想出的是:

for item in $list

do

if [ "$x" == "$item" ]; then

echo "In the list"

exit

fi

done

我的问题是,是否有更简单的方法可以做到这一点,

就像list.contains(x)大多数编程语言一样。

说的清单是:

list="11 22 33"

我的代码将仅针对那些值回显该消息,因为list将其视为数组而不是字符串,所有字符串操作都将验证,1而我希望它失败。

回答:

[[ $list =~ (^|[[:space:]])$x($|[[:space:]]) ]] && echo 'yes' || echo 'no'

或创建一个函数:

contains() {

[[ $1 =~ (^|[[:space:]])$2($|[[:space:]]) ]] && exit(0) || exit(1)

}

使用它:

contains aList anItem

echo $? # 0: match, 1: failed

以上是 如何检查BASH列表中是否存在变量 的全部内容, 来源链接: utcz.com/qa/406092.html

回到顶部