Bash数组-判断某个元素是否在数组内的几种方法
声明一个数组array,一个待测试元素var
array=(
element1
element2
element3
)
var="element1"
接下来用几种方法来分别测试var是否是array中的元素
判断方法1:
echo "${array[@]}" | grep -wq "$var" && echo "Yes" || echo "No"
判断方法2:
for i in ${array[@]}
do
[ "$i" == "$var" ] && echo "yes"
done
判断方法3:这是个人感觉最巧妙的一种测试方法,使用了bash数组的内置方法。
[[ ${array[@]/${var}/} != ${array[@]} ]] && echo "Yes" || echo "No"
测试演示
# 声明数组array、变量var
[root(0)@thatsit ~]# array=(
> element1
> element2
> element3
> )
[root(0)@thatsit ~]#
[root(0)@thatsit ~]# var="element1"
# 确认数组和变量值
[root(0)@thatsit ~]# echo ${array[@]}
element1 element2 element3
[root(0)@thatsit ~]# echo $var
element1
[root(0)@thatsit ~]#
# 判断方法1
[root(0)@thatsit ~]# echo "${array[@]}" | grep -wq "$var" && echo "Yes" || echo "No"
Yes
[root(0)@thatsit ~]#
# 判断方法2
[root(0)@thatsit ~]# for i in ${array[@]}
> do
> [ "$i" == "$var" ] && echo "yes"
> done
yes
[root(0)@thatsit ~]#
# 判断方法3
[root(0)@thatsit ~]# [[ ${array[@]/${var}/} != ${array[@]} ]] && echo "Yes" || echo "No"
Yes
[root(0)@thatsit ~]#
Bash数组-判断某个元素是否在数组内的几种方法的更多相关文章
- jquery 判断一个元素是否在数组中 $.inarry()使用
需要判断一个元素是否在一个数组里: js indexOf()方法 如果存在 则返回该元素的下标值 如果不存在则返回-1 学习源头: http://www.w3school.com.cn/jsref/ ...
- js判断一个元素是否在数组中
js判断一个元素是否在数组中 var arr = ['a','s','d','f']; console.info(isInArray(arr,'a'));//循环的方式 function isInAr ...
- 【JS】【6】判断一个元素是否在数组中
摘要: 有三种方式: 1,jquery的inArray方法 2,数组的indexOf方法 3,普通的for循环方法 正文: 1,jquery的inArray方法 /** * @param {Objec ...
- indexOf() 如何判断一个元素在指定数组中是否存在? 找出指定元素出现的所有位置? indexOf()方法 是正序查找,lastIndexOf()是倒叙查找
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1. let a = [2, 9, 7, 8, 9]; a.indexOf(2); // 0 a.indexOf ...
- MongoDB 学习笔记之 从数组中删除元素和指定数组位置
从数组中删除元素: 从数组中删除单个元素: db.ArrayTest.updateOne({ "name" : "Bill"},{$pop: {"ad ...
- 011-JSON、JSONObject、JSONArray使用、JSON数组形式字符串转换为List<Map<String,String>>的8种方法
一.JSON数据格式 1.1.常用JSON数据格式 1.对象方式:JSONObject的数据是用 { } 来表示的, 例如: { "id" : "123", & ...
- 如何使用T-SQL备份还原数据库及c#如何调用执行? C#中索引器的作用和实现。 jquery控制元素的隐藏和显示的几种方法。 localStorage、sessionStorage用法总结 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一) span<T>之高性能字符串操作实测
如何使用T-SQL备份还原数据库及c#如何调用执行? 准备材料:Microsoft SQL Server一部.需要还原的bak文件一只 一.备份 数据库备份语句:user master backup ...
- 记录:js删除数组中某一项或几项的几种方法
1:js中的splice方法 splice(index,len,[item]) 注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 inde ...
- 记录:js删除数组中某一项或几项的几种方法(转)
1:js中的splice方法 splice(index,len,[item]) 注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 inde ...
随机推荐
- code first System.Data.Entity.Infrastructure.CommitFailedException: An error was reported while committing a database transaction but it could not be determined whether the transaction succeeded
System.Data.Entity.Infrastructure.CommitFailedException: An error was reported while committing a da ...
- git reset --hard 操作后的数据恢复
在进行正文之前先简单介绍下git reset 命令 git reset git reset 命令用于改变当前的仓库状态,简单的场景用例:假设一次修改了两个文件,然而需要对这两个文件分别进行两次提交,在 ...
- 十、Springboot之thymeleaf与jsp共存
: pom.xml添加依赖 <!--thymeleaf整合JSP需要用到下面的依赖--> <dependency> <groupId>org.thymeleaf&l ...
- C:\WINDOWS\system32\drivers\etc\hosts文件的作用
在网络上访问网站,要首先通过DNS服务器把网络域名(www.XXXX.com)解析成XXX.XXX.XXX.XXX的IP地址后,我们的计算机才能访问.要是对于每个域名请求我们都要等待域名服务器解析后返 ...
- Html/CSS 初步介绍html和css部分重要标签
&初步介绍html和css部分重要标签& 注:开头书写:<!DOCTYPE html>表明对应标准html代码 先行总结重点 下方给出具体 CSS: 1. position ...
- node.js ffmpeg-concat 命令行形式处理多个视频的过度效果
ffmpeg-concat 是利用 gl-transitions 处理多个视频的过度效果.详细说明参见 https://github.com/transitive-bullshit/ffmpeg-co ...
- Delphi DbgridEh实现鼠标拖动选中列,并使复选框选中
1.先设置表格列的属性 procedure TForm_TaskToDW.InitGrid;var MyCol: TColumnEh;begin with DBGridEh_Task do be ...
- 初学node.js-nodejs中实现用户注册路由
经过前面几次的学习,已经可以做下小功能,今天要实现的事用户注册路由. 一.users_model.js 功能:定义用户对象模型 var mongoose=require('mongoose'), S ...
- big data env setup
install Spark on CentOS: https://aodba.com/how-to-install-apache-spark-in-centos-standalone/ https:/ ...
- k线图的分形
蜡烛图上的分形指标,作为一种特殊的K线组合形态,通过对价格的一系列的高低点的描述,辅助识别出市场潜在的突破和反转点,预判后期走势. 顶分形:相邻的五根K线,若中间那根K线最高价为这五根K线的最高价,则 ...