首页 > 系统相关 >Shell 数组

Shell 数组

时间:2023-04-02 21:35:15浏览次数:35  
标签:Shell 元素 echo 数组 home array my

Shell 数组

数组中可以存放多个值。

Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小。

与大部分编程语言类似,数组元素的下标由 0 开始。

Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

array_name=(value1 value2 ... valuen)

实例

root@jdit:/home/wht# my_array=(A B "C" D)
root@jdit:/home/wht# echo $my_array
A
root@jdit:/home/wht# echo ${my_array[*]}
A B C D
root@jdit:/home/wht# echo ${my_array[@]}
A B C D
root@jdit:/home/wht#

我们也可以使用下标来定义数组:

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

读取数组

读取数组元素值的一般格式是:

${array_name[index]}

实例

root@jdit:/home/wht# my_array=(A B "C" D)
root@jdit:/home/wht# echo "第一个元素为: ${my_array[0]}"
第一个元素为: A
root@jdit:/home/wht# echo "第二个元素为: ${my_array[1]}"
echo "第三个元素为: ${my_array[2]}"
echo "第四个元素为: ${my_array[3]}"
第二个元素为: B
第三个元素为: C
第四个元素为: D
root@jdit:/home/wht#

执行脚本,输出结果如下所示:

第一个元素为: A
第二个元素为: B
第三个元素为: C
第四个元素为: D

获取数组中的所有元素

使用@ 或 * 可以获取数组中的所有元素,例如:

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"

执行脚本,输出结果如下所示:

数组的元素为: A B C D
数组的元素为: A B C D

获取数组的长度

获取数组长度的方法与获取字符串长度的方法相同,例如:

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "数组元素个数为: ${#my_array[*]}"
echo "数组元素个数为: ${#my_array[@]}"

执行脚本,输出结果如下所示:

数组元素个数为: 4
数组元素个数为: 4

标签:Shell,元素,echo,数组,home,array,my
From: https://www.cnblogs.com/hcgk/p/17281418.html

相关文章

  • Shell 基本运算符
    Shell基本运算符Shell和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和expr,expr最常用。这就很神奇了,和其他语言不同基本的原算法都要给第三方......
  • 12、数组
    1.数组的概念Go语言提供了数组类型的数据结构。数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。数组元素可以通过索引(位置)来读取(或者修改),索引从0开始第一个元素索引为0,第二个索引为1,以此类推。......
  • NOI 1.8编程基础之多维数组
    02:同行列对角线的格子1.描述输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中(行列均从1开始编号),与格子(i,j)同行、同列、同一对角线的所有格子的位置。如:n=4,i=2,j=3表示了棋盘中的第二行第三列的格子,如下图:第一列第二列第三列第四列     ......
  • 数组练习1
    1、将密码文件的每一行作为元数赋值给数组  2、使用关联数组统计密码文件中用户使用的不同类型shell的数量   3、使用关联数组按扩展名统计指定目录中文件的数量  ......
  • 5.函数6.数组7.操作符8.常见关键字9.#define定义的常量和宏
    在我们学习的数学里面,函数的概念例子比如f(x)=2*x+1;  f(x,y)=x+y;在c语言也是同样的样子比如,我举例一条要相加的例子#definr_#include<stdio.h>intAdd(intx,inty)//int是他的返回类型是个整形,所以要加int//这就是一个函数add是自己创建的一个函数名,括号里面叫做函数的......
  • java数组的创建和使用
    声明数组必须先声明后使用,数组的声明有两种方法:1.C语言风格声明:dataTypearrayRefVar[];2.Java风格声明:dataType[]arrayRefVar;一般推荐使用第二种Java风格的声明方式。创建数组声明的数组并不具备物理空间,需要使用new操作符来创建数组,为其分配内存空间:dataType[......
  • CMD、Powershell、Bash
    总体来说,CMD、Powershell和Bash都是命令行工具,用于执行各种命令和脚本,但它们的功能和用法都有所不同,根据不同的需求选择不同的命令行工具。CMDCMD(CommandPrompt)是Windows操作系统中的命令行工具,提供了基本的命令行交互功能,如文件管理、进程管理、网络管理等。CMD是Windows系统......
  • Shell数组练习
    1、将/etc/shadow文件的每一行作为元素赋值给数组#!/bin/bash#统计行数,作为循环次数num=`wc-l</etc/shadow`for((i=0;i<=num;i++))do#根据i的变化取前i行内容再然后截取最后一行加入数组中array[$i]=$(head-$i/etc/shadow|tail-1)done#依次输出数组中......
  • 215. 数组中的第K个最大元素
    参考:https://leetcode.cn/problems/kth-largest-element-in-an-array/solutions/19607/partitionfen-er-zhi-zhi-you-xian-dui-lie-java-dai-/https://www.bilibili.com/video/BV1La411J7q9/?spm_id_from=333.999.0.0classSolution{publicintfindKthLargest(int[]n......
  • 713. 乘积小于 K 的子数组
    力扣题目链接给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例1:输入:nums=[10,5,2,6],k=100输出:8解释:8个乘积小于100的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注......