Linux数组(Array)

Linux数组(Array) 首页 / Linux入门教程 / Linux数组(Array)

Shell支持另一种类型的变量,称为 array变量。这可以同时保存多个值,数组提供了一种对一组变量进行分组的方法。

定义数组值

假设您尝试将各个学生的姓名表示为一组变量。每个单独的变量都是标量变量,如下所示-

NAME01="Learnfk"
NAME02="Nesfk"
NAME03="Toolfk"
NAME04="Poemfk"
NAME05="Chromefk"

我们可以使用单个数组来存储所有上述名称,以下是创建数组变量的最简单方法,这有助于为其一个索引分配一个值。

array_name[index]=value

这里 array_name 是数组的名称, index 是要设置的数组中项目的索引,而value是要为其设置的值。

如,以下命令-

NAME[0]="Learnfk"
NAME[1]="Nesfk"
NAME[2]="Toolfk"
NAME[3]="Poemfk"
NAME[4]="Chromefk"

如果您使用的是 ksh shell,则这是数组初始化的语法-

set -A array_name value1 value2 ... valuen

如果您使用的是 bash shell,则这是数组初始化的语法-

array_name=(value1 ... valuen)

访问数组值

设置任何数组变量后,可以按以下方式访问它:

${array_name[index]}

这里 array_name 是数组的名称,而 index 是要访问的值的索引。以下是了解概念的示例-

#!/bin/sh

NAME[0]="Learnfk.com"
NAME[1]="Nesfk.com"
NAME[2]="Toolfk.com"
NAME[3]="Poemfk.com"
NAME[4]="Chromefk.com"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"

上面的示例将产生以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/linux/linux-using-arrays.html

来源:LearnFk无涯教程网

$./test.sh
First Index: Learnfk.com
Second Index: Nesfk.com

您可以通过以下方式之一访问数组中的所有项目:

无涯教程网

${array_name[*]}
${array_name[@]}

这里 array_name 是您感兴趣的数组的名称。以下示例将帮助您理解概念-

#!/bin/sh

NAME[0]="Learnfk.com"
NAME[1]="Nesfk.com"
NAME[2]="Toolfk.com"
NAME[3]="Poemfk.com"
NAME[4]="Chromefk.com"
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"

上面的示例将产生以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/linux/linux-using-arrays.html

来源:LearnFk无涯教程网

$./test.sh
First Method: Learnfk.com Nesfk.com Toolfk.com Poemfk.com Chromefk.com
Second Method: Learnfk.com Nesfk.com Toolfk.com Poemfk.com Chromefk.com

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

教程推荐

结构执行力 -〔李忠秋〕

Dubbo源码剖析与实战 -〔何辉〕

零基础学Python(2023版) -〔尹会生〕

大数据经典论文解读 -〔徐文浩〕

Spring编程常见错误50例 -〔傅健〕

网络编程实战 -〔盛延敏〕

面试现场 -〔白海飞〕

重学前端 -〔程劭非(winter)〕

深入剖析Kubernetes -〔张磊〕

好记忆不如烂笔头。留下您的足迹吧 :)