iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Bash Shell脚本中数组的使用方法
  • 697
分享到

Bash Shell脚本中数组的使用方法

2023-06-17 02:06:23 697人浏览 安东尼
摘要

这篇文章主要介绍“Bash shell脚本中数组的使用方法”,在日常操作中,相信很多人在Bash Shell脚本中数组的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Bash Shell脚本中数组的使

这篇文章主要介绍“Bash shell脚本中数组的使用方法”,在日常操作中,相信很多人在Bash Shell脚本中数组的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Bash Shell脚本中数组的使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

数组是一个包含多个值的变量,这些值可以是相同类型或不同类型。没有数组大小限制,也没有要求成员变量被连续索引或连续分配的限制。数组索引从0开始。

1.声明一个数组并赋值

在bash中,使用以下格式的变量时会自动创建数组:

name[index]=value

name 是数组的名字。

index 可以是任何数字或表达式,值必须等于或大于零。

要访问数组元素,请使用大括号,例如${name[index]}。下面是访问Unix数组中的第二个元素,以为数组索引从0开始,所以Unix[1]就是第二个元素了。

[root@localhost ~]# cat arraymanip.sh #! /bin/bash Unix[0]='Debian' Unix[1]='Red hat' Unix[2]='ubuntu' Unix[3]='Suse'  echo ${Unix[1]}

执行脚本,以下是输出内容:

[root@localhost ~]# ./arraymain.sh  Red hat

Bash Shell脚本中数组的使用方法

2.在声明期间初始化数组

不必单独初始化数组的每个元素,可以通过使用括号指定元素列表(由空格分隔)来声明和初始化数组。下面是语法:

declare -a arrayname=(element1 element2 element3)

如果元素具有空格字符,需要使用引号:

[root@localhost ~]# cat arraymain2.sh   #! /bin/bash declare -a Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora')  echo ${Unix[4]}

下面是输出结果:

[root@localhost ~]# ./arraymain2.sh  Fedora

Bash Shell脚本中数组的使用方法

declare -a声明一个数组,括号中的所有元素都是数组的元素。

3.打印整个数组

有多种方法可以打印整个数组。如果索引号是 @ 或者 * ,则引用数组的所有成员。可以使用bash shell中的循环语句遍历数组元素并进行打印。

[root@localhost ~]# cat arraymain.sh  #! /bin/bash Unix[0]='Debian' Unix[1]='Red hat' Unix[2]='Ubuntu' Unix[3]='Suse'  echo ${Unix[@]}

下面是输出结果:

[root@localhost ~]# ./arraymain.sh  Debian Red hat Ubuntu Suse

Bash Shell脚本中数组的使用方法

4.获取数组的长度

可以使用$和#的特殊参数来获取数组的长度。${#arrayname[@]} 可以获取数组长度。

[root@localhost ~]# cat arraymain2.sh  #! /bin/bash declare -a Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora')  echo ${#Unix[@]} #数组中元素的数量 echo ${#Unix}  #数组中第一个元素的字符数。

下面是输出,可以看到第一行输出参数为5个。第二行输出第一个元素的字符数量是6个。

[root@localhost ~]# ./arraymain2.sh  5 6

Bash Shell脚本中数组的使用方法

5.数组中某个元素的长度

[root@localhost ~]# cat arraymain.sh  #! /bin/bash Unix[0]='Debian' Unix[1]='Red hat' Unix[2]='Ubuntu' Unix[3]='Suse'  echo ${#Unix[3]} #位于索引3的元素的长度。

以下是输出,可以看到输出index为3的值为"Suse"的字符长度是4。

[root@localhost ~]# ./arraymain.sh  4

Bash Shell脚本中数组的使用方法

6.按数组的偏移量和长度提取

下面的示例显示了从名为Unix的数组中从索引位置3开始提取2个元素的方法。

[root@localhost ~]# cat arraymain.sh  #! /bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'Openlinux') echo ${Unix[@]:3:2}

以下是输出,

[root@localhost ~]# ./arraymain.sh  Suse Fedora

Bash Shell脚本中数组的使用方法

上面的示例返回第三、第四个索引的值。索引始终以零开头。

7.对于数组的特定元素,使用offset和length提取

从数组元素中仅提取前四个元素。例如,获取数组中的第二个元素,并且获取这个元素的前三个字符:

[root@localhost ~]# cat arraymain.sh  #! /bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux')  echo ${Unix[1]:0:3}

以下是输出:

[root@localhost ~]# ./arraymain.sh  Red

Bash Shell脚本中数组的使用方法

8.搜索并替换数组元素

下面的示例在数组中搜索Ubuntu,并将其替换为单词“FreeBSD”。

[root@localhost ~]# cat arraymain.sh  #! /bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux')  echo ${Unix[@]/Ubuntu/FreeBSD}

以下是输出:

[root@localhost ~]# ./arraymain.sh  Debian Red hat FreeBSD Suse Fedora UTS OpenLinux [root@localhost ~]#

Bash Shell脚本中数组的使用方法

注意,该数组替换,不会写入到数组里面。

9.向现有的数组添加元素

以下示例显示了将元素添加到现有数组的方法。

[root@localhost ~]# cat arraymain.sh  #! /bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux') Unix=("${Unix[@]}" "AIX" "HP-UX")  echo ${Unix[@]}

以下是输出:

[root@localhost ~]# ./arraymain.sh  Debian Red hat Ubuntu Suse Fedora UTS OpenLinux AIX HP-UX

Bash Shell脚本中数组的使用方法

在名为Unix的数组中,元素“ AIX”和“ HP-UX”分别添加在第7个索引和第8个索引中。并输出所有数组元素。

10.从数组中删除一个元素

unset用于从数组中删除元素。unset和分配给元素“Null"值具有相同的效果。

[root@localhost ~]# cat arraymain.sh  #! /bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux')  unset Unix[1]  echo ${Unix[@]} echo ${Unix[1]}

以下为输出:

[root@localhost ~]# ./arraymain.sh  Debian Ubuntu Suse Fedora UTS OpenLinux

上面的脚本将打印整个数组,还有索引为"1"的值,索引为“1”的值是null。

Bash Shell脚本中数组的使用方法

以下示例显示了从数组中完全删除元素的一种方法,下面还是删除索引为1的元素。

[root@localhost ~]# cat arraymain.sh  #! /bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux') pos=1 Unix=(${Unix[@]:0:$pos} ${Unix[@]:$(($pos + 1))}) echo ${Unix[@]}

以下为输出:

[root@localhost ~]# ./arraymain.sh  Debian Ubuntu Suse Fedora UTS OpenLinux

Bash Shell脚本中数组的使用方法

在此示例中,${Unix[@]:0:$pos}值获取第1个索引的元素,,而${Unix[@]:$(($pos +  1))}将从第3个索引到最后一个索引。并合并以上两个输出。这是从数组中删除元素的解决方法之一。

11.使用正则表达式删除数组中的元素

在搜索条件中,可以给出正则表达式,并将剩余的元素存储到另一个数组中,如下所示。

[root@localhost ~]# cat arraymain2.sh  #! /bin/bash declare -a Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora') declare -a pattern=( ${Unix[@]/Red*/} ) echo ${pattern[@]}

以下为输出:

[root@localhost ~]# ./arraymain2.sh  Debian Ubuntu Suse Fedora

Bash Shell脚本中数组的使用方法

上面的示例中删除了包含"Red"字符的元素。实际是将"Red*"替换为空字符。

12.复制数组

以下实例是将Unix数组复制到Linux数组中:

[root@localhost ~]# cat arraymain.sh  #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux') Linux=("${Unix[@]}")  echo ${Linux[@]}

以下为输出:

[root@localhost ~]# ./arraymain.sh  Debian Red hat Ubuntu Suse Fedora UTS OpenLinux

Bash Shell脚本中数组的使用方法

13.两个数组的关联

展开两个数组的元素,然后将其分配给新数组:

[root@localhost ~]# cat arraymain.sh  #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Shell=('bash' 'csh' 'jsh' 'rsh' 'ksh' 'rc' 'tcsh');  UnixShell=("${Unix[@]}" "${Shell[@]}") echo ${UnixShell[@]} echo ${#UnixShell[@]}

以下为输出:

[root@localhost ~]# ./arraymain.sh  Debian Red hat Ubuntu Suse Fedora UTS OpenLinux bash csh jsh rsh ksh rc tcsh 14

Bash Shell脚本中数组的使用方法

该实例同时打印数组“ Unix”和“ Shell”数组的元素,并且新数组的元素数为14个。

14.删除整个数组

unset用于删除整个数组。

[root@localhost ~]# cat arraymain.sh  #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Shell=('bash' 'csh' 'jsh' 'rsh' 'ksh' 'rc' 'tcsh');  UnixShell=("${Unix[@]}" "${Shell[@]}")  unset UnixShell echo ${#UnixShell[@]}

以下为输出:

[root@localhost ~]# ./arraymain.sh  0

Bash Shell脚本中数组的使用方法

unset数组之后,其长度将为零,如上所示。

15.将文件内容加载到数组中

您可以将文件内容逐行加载到数组中。

[root@localhost ~]# cat loadcontent.sh  #!/bin/bash file=(`cat ./pic.txt`)  for i in "${file[@]}" do echo $i done  echo -e "\033[31m Read file content! \033[0m"

以下为输出:

[root@localhost ~]# ./loadcontent.sh  https://www.linuxprobe.com/wp-content/uploads/2021/01/windows7.png Https://www.linuxprobe.com/wp-content/uploads/2016/12/bigdata.jpg https://www.linuxprobe.com/wp-content/uploads/2021/01/write-games-and-learn-python.jpg https://www.linuxprobe.com/wp-content/uploads/2021/01/data-center-inspection.jpg https://www.linuxprobe.com/wp-content/uploads/2020/03/devolop-like-linux-09.jpg  Read file content!

Bash Shell脚本中数组的使用方法

在上面的示例中,使用for循环,逐一显示文件中每行的内容。

到此,关于“Bash Shell脚本中数组的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Bash Shell脚本中数组的使用方法

本文链接: https://www.lsjlt.com/news/286847.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Bash Shell脚本中数组的使用方法
    这篇文章主要介绍“Bash Shell脚本中数组的使用方法”,在日常操作中,相信很多人在Bash Shell脚本中数组的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Bash Shell脚本中数组的使...
    99+
    2023-06-17
  • python调用bash shell脚本方法
    目录1. os.system()1.1. demo2. os.popen()2.1 demo3. commands模块4. subprocess4.1 demo1. os.syste...
    99+
    2024-04-02
  • Bash脚本中如何使用数组?
    Bash是一种流行的Shell编程语言,它常用于Linux和其他Unix系统中。Bash脚本是一种快速编写、自动化和调试命令行任务的方式。在Bash脚本中,数组是一种非常有用的数据结构,可以用来存储一组有序的数据。在本文中,我们将介绍如何...
    99+
    2023-10-29
    数组 bash windows
  • Shell脚本中的数组用法总结
    这篇文章主要讲解了“Shell脚本中的数组用法总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本中的数组用法总结”吧!1、怎么声明一个数组变量?直接赋值:代码如下:array[...
    99+
    2023-06-09
  • 【shell脚本编写】shell 数组的使用
    数组 shell基础-04 数组(定义数组、查看数组、访问数组、删除数组、关联数组、二维数组) shell脚本之数组 打印数组_shell数组和字典 速查 操作命令作用创建数组declare ...
    99+
    2023-09-03
    php 开发语言 linux
  • PHP中shell脚本的使用方法
    今天就跟大家聊聊有关PHP中shell脚本的使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。我们都知道,在计算机科学中,SHELL类似于DOS下的command.com。它接收...
    99+
    2023-06-17
  • python调用bash shell脚本的方法是什么
    本篇文章为大家展示了python调用bash shell脚本的方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. os.system()help(os.system)1.1. d...
    99+
    2023-06-22
  • Shell脚本中如何使用Java数组?
    在Shell脚本中使用Java数组是一个非常常见的需求。这是因为Java数组在存储大量数据时非常方便,而Shell脚本则常常需要处理大量数据。本文将介绍如何在Shell脚本中使用Java数组。 声明和初始化Java数组 在Java中声...
    99+
    2023-09-22
    数组 关键字 shell
  • node中使用shell脚本的方法步骤
    背景 在开发中我们在特定的场合下可能需要一些脚本来批量处理我们的业务逻辑,在nodejs如何调用shell脚本呢? 新建 项目下新建脚本文件 touch newFile.sh...
    99+
    2024-04-02
  • java中调用shell脚本的方法
    java中调用shell脚本的方法:1、在java项目中能够通过ProcessBuilder进行调度shell脚本,参数设置相对简单;2、还能够通过系统Runtime执行shell脚本,但在参数设置上需要添加空格将两个参数分开。具体内容如下...
    99+
    2024-04-02
  • Shell脚本中的函数怎么使用
    本篇内容介绍了“Shell脚本中的函数怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Shell脚本中的功能是什么?函数是一组命令,这...
    99+
    2023-06-04
  • Shell脚本中$符号的嵌套使用方法小结
    目录1 示例2 说明本文主要介绍在编写 Shell 脚本时,通过嵌套使用 $ 符号,间接获取变量或表达式的值的具体方法。 先说结论,在 Shell 脚本中,可以通过使用 eval 命令来实现 $ 符号的嵌套使用...
    99+
    2023-05-06
    Shell $符号嵌套 Shell $符号
  • 怎么在shell脚本中使用字符串和数组
    这篇文章将为大家详细讲解有关怎么在shell脚本中使用字符串和数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。字符串可以使用单引号和双引号定义字符串变量但是单引号中不支持变量解析#!&nb...
    99+
    2023-06-09
  • Bash脚本中Sleep命令的使用
    目录等待时间的格式使用变量控制等待时间结论在编写Bash脚本时,有时需要在程序执行过程中加入一些等待时间,例如等待某个操作完成或等待某个进程退出。此时可以使用sleep命令来实现。 sleep命令可以让脚本暂停执行一段时...
    99+
    2023-05-05
    Bash Sleep命令 Bash Sleep
  • shell脚本编程if语句的使用方法
    本篇内容主要讲解“shell脚本编程if语句的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell脚本编程if语句的使用方法”吧!我不是研究linux下的东西的,所以这里只对shel...
    99+
    2023-06-09
  • Shell脚本传参数的方法介绍
    本篇内容介绍了“Shell脚本传参数的方法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、接收固定长度的参数代码如下:[root@sv...
    99+
    2023-06-09
  • 如何在Java中使用Bash脚本函数?
    Java是一种广泛使用的编程语言,而Bash脚本则是一种常用的命令行脚本语言。在某些情况下,我们需要在Java程序中使用Bash脚本函数来完成一些特定的任务。本文将介绍如何在Java中使用Bash脚本函数,并提供相关示例代码。 一、什么是B...
    99+
    2023-08-19
    函数 bash spring
  • Shell脚本中如何使用PHP数组来简化代码?
    在Shell脚本中,经常需要处理一些数据,例如解析文件或者处理命令行参数。处理数据的过程中,我们需要使用到数组来存储和操作数据。在Shell脚本中,使用数组可以帮助我们简化代码,提高代码的可读性和可维护性。 在Shell脚本中,数组的使用...
    99+
    2023-08-25
    数组 shell laravel
  • Shell脚本运行环境及基本使用方法
    目录引言一、Shell 脚本二、Shell 环境三、第一个shell脚本运行 Shell 脚本有两种方法:Ubuntu(linux)下 source、sh、bash、./ 执行脚本的区别是什么?引言 Shell 是一个用...
    99+
    2023-05-12
    Shell脚本运行环境 Shell脚本运行
  • 在Linux系统中Shell脚本使用if语句的方法
    这篇文章主要讲解了“在Linux系统中Shell脚本使用if语句的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中Shell脚本使用if语句的方法”吧!Bourne Sh...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作