Bash数组-判断某个元素是否在数组内的几种方法

摘要:
[[${array[@]/${var}/}!=${array[@]}]]&&echo“是”| | echo“否”是[root(0)@thatsat~]#

声明一个数组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数组-判断某个元素是否在数组内的几种方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇zookeeper学习(零)_安装与启动c# AutoMapper踩坑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

移动端——JS(一)

javascript(简称js)语言在移动前端可以说必不可少,许多效果都是和js相关的,包括现在移动端的一些框架:jqmobi、jqtouch、sencha touch、jquerymobile等等。都是基于js编写的。 暂时不讨论这些框架,主要讨论一下部分常用的js事件在移动端的使用。举几个例子: 1、隐藏地址导航栏: <script> /...

VMware安装的Linux系统忘记密码 怎么修改root密码

因为昨天新安装过虚拟机设置了新的密码,再加上我好长时间没有用自己旧的虚拟机,导致忘记了密码,原来虽然知道在单用模式下,找回密码,但是确实是自己从来都没有做过,还好我们组大手飞翔哥告诉了我,怎么找回root密码,再次我帮 像我一样的新手朋友们 总结下 如何找回自己虚拟机linux的root密码。 重启系统后出现GRUB界面在引导装载程序菜单上,用上下方向键选...

关于Ubuntu18.04 linux系统使用安装JDK Mysql

平台部署 一、安装JDK step1.下载OracleJDKstep2.解压step3.加入环境变量 具体操作如下: lemon@ubuntu:~$ cd ~/download/ lemon@ubuntu:~/download$ wget http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787...

将一个文件夹中我们需要的文件拷贝到另一个文件夹中的代码实现

1 package cn.itsource.homework; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.util.ArrayList; 7 /** 8 * 需求:...

最长有效括号

给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 示例 2: 输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()" 小编的这道题用的暴力法,之后发现自己太水了,之后看了LeetCode的官方题解链接:https...

MATLAB元胞数组

MATLAB元胞数组 元胞数组: 元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。和一般的数值矩阵一样,元胞数组的内存空间也是动...