bash - 检查整数是否是数组中的元素
问题描述
我需要检查值 c 是否存在于整数数组中,我知道如何使用 for 循环和 if 语句来解决这个问题:
for c in {1..100};do
sequence=(2 4 6 8 10 12 14 16)
for value in "${sequence[@]}";do
if [[ $value -eq $c ]];then #If c exists in sequence
flag=1
break
fi
done
完毕
但我不想要这个,我尝试了类似的东西:
[[ ${sequence[*]} =~ $c ]]
但它并没有给我想要的结果,我认为它只适用于字符串数组,而不适用于整数。
我怎么能接近这个?
解决方案
将我的评论转换为答案,以便将来的访问者轻松找到该解决方案。
您可以使用此grep + printf
解决方案:
grep -qFx "$c" <(printf '%s\n' "${sequence[@]}") && echo "found" || echo "nope"
推荐阅读
- datetime - 转换日期时间返回 Null
- flutter - 收到此错误 - 输入“未来”
' 不是类型 'List 的子类型 ' - javascript - res.clearCookie 函数不会删除 cookie
- python - 使用社区检测标签更新 Pandas 数据框
- android - 如何合并到 kotlin 协程?
- visual-studio-code - 如何将可选的选定文本传递给任务
- performance - mlcp 对不同的输入目录路径执行不同
- c# - 如何将长字符串拆分为字符,使其与给定的矩形匹配?
- jenkins - 有没有办法只使用名称而不是 node_name:port 来访问 Kubernetes 服务(外部)?
- python - 日期时间格式和计算