Linux--shell编程中有关数组的详细内容

文章中数组相关内容目录

一、定义数组

二、读取数组

​​​​​​​​​​​​​​三、获取数组中的所有元素

​​​​​​​​​​​​​​四、获取数组的长度

五、遍历数组​​​​​​​

一、定义数组

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

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

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

array_name=(value1 ... valuen)

实例:

test31.sh

#!/bin/bash

my_array=(A B "C" D)

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

array_name[0]=value0

array_name[1]=value1

array_name[2]=value2

​​​​​​​二、读取数组

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

${array_name[index]}

​​​​​​​实例

test32.sh

#!/bin/bash

my_array=("A" "B" "C" "D")

echo "第一个元素为: ${my_array[0]}"

echo "第二个元素为: ${my_array[1]}"

echo "第三个元素为: ${my_array[2]}"

echo "第四个元素为: ${my_array[3]}"

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

$ chmod +x test.sh

$ ./test.sh

第一个元素为: A

第二个元素为: B

第三个元素为: C

第四个元素为: D

​​​​​​​​​​​​​​三、获取数组中的所有元素

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

test33.sh

#!/bin/bash

my_array[0]=A

my_array[1]=B

my_array[2]=C

my_array[3]=D

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

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

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

$ chmod +x test.sh

$ ./test.sh

数组的元素为: A B C D

数组的元素为: A B C D

​​​​​​​​​​​​​​四、获取数组的长度

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

test34.sh

#!/bin/bash

my_array[0]=A

my_array[1]=B

my_array[2]=C

my_array[3]=D

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

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

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

$ chmod +x test.sh

$ ./test.sh

数组元素个数为: 4

数组元素个数为: 4

五、遍历数组

方式一

test35.sh

#!/bin/bash

my_arr=(AA BB CC)

for var in ${my_arr[*]}

do

  echo $var

done

​​​​​​​方式二

test36.sh

#!/bin/bash

my_arr=(AA BB CC)

my_arr_num=${#my_arr[*]}

for((i=0;i<my_arr_num;i++));

do

  echo "-----------------------------"

  echo ${my_arr[$i]}

done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/693769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#,洗牌问题(Card Shuffle Problem)的算法与源代码

1 洗牌问题&#xff08;Card Shuffle Problem&#xff09; 洗牌问题&#xff08;Card Shuffle Problem&#xff09;的基本描述 你有 100 张牌&#xff0c;从 1 到 100。 你把它们分成 k 堆&#xff0c;然后按顺序收集回来。 例如&#xff0c;如果您将它们分成 4 堆&#xff0…

《Solidity 简易速速上手小册》第9章:DApp 开发与 Solidity 集成(2024 最新版)

文章目录 9.1 DApp 的架构和设计9.1.1 基础知识解析更深入的理解实际操作技巧 9.1.2 重点案例&#xff1a;去中心化社交媒体平台案例 Demo&#xff1a;创建去中心化社交媒体平台案例代码SocialMedia.sol - 智能合约前端界面 测试和验证拓展功能 9.1.3 拓展案例 1&#xff1a;去…

ASP.NET-实现图形验证码

ASP.NET 实现图形验证码能够增强网站安全性&#xff0c;防止机器人攻击。通过生成随机验证码并将其绘制成图像&#xff0c;用户在输入验证码时增加了人机交互的难度。本文介绍了如何使用 C# 和 ASP.NET 创建一个简单而有效的图形验证码系统&#xff0c;包括生成随机验证码、绘制…

《社交网络》计算机电影题材赏析及电影推荐

《社交网络》&#xff08;The Social Network&#xff09;是一部2010年上映的传记剧情片&#xff0c;由大卫芬奇执导&#xff0c;主要讲述了Facebook创始人马克扎克伯格的创业历程和与合作伙伴之间的法律纠纷。 剧情 开场&#xff1a; 马克扎克伯格&#xff08;由杰西艾森伯格…

docker部署llm模型的项目,需要安装什么驱动

Docker容器中部署大型语言模型&#xff08;LLM&#xff09;项目&#xff0c;尤其是需要利用GPU进行加速的情况下&#xff0c;确保主机系统正确安装了NVIDIA驱动和CUDA是第一步。接着&#xff0c;你需要使用NVIDIA提供的Docker工具&#xff0c;如NVIDIA Container Toolkit&#…

Atcoder ABC341 A - Print 341

Print 341&#xff08;输出 341&#xff09; 时间限制&#xff1a;2s 内存限制&#xff1a;1024MB 【原题地址】 所有图片源自Atcoder&#xff0c;题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例输入1】 …

CentOS 中 YUM 源一键更新

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

大模型与大模型参数

1、大模型&#xff1a; 大模型是指具有庞大参数数量的机器学习模型&#xff0c;通常由数十亿甚至数千亿个参数组成。这些模型在训练过程中需要处理大量的数据&#xff0c;并通过不断的调整参数来逐步提高对任务的准确性。 大模型的工作原理类似于小型模型&#xff0c;但由于其…

离线环境解决IDEA连接数据库报需下载驱动的问题 Download missing driverfiles

去外网电脑上把这个目录下的MySQL ConnectorJ文件夹整体拷贝的内网电脑上就ok了&#xff01; C:\Users\like12\AppData\Roaming\JetBrains\IntelliJIdea2021.2\jdbc-drivers 参考&#xff1a;IDEA Download missing driver files 下载失败解决方法-CSDN博客

共享WiFi贴是什么,究竟安不安全?

在现代社会中&#xff0c;移动设备和互联网已经成为我们日常生活中不可或缺的一部分。为了方便我们的网络使用&#xff0c;越来越多的人选择使用公共WiFi&#xff0c;但是安全性成了很大的问题。而随着共享WiFi贴的出现&#xff0c;我们是否可以更加安全便捷地使用WiFi呢&#…

从基础到高级:Linux用户与用户组权限设置详解

目录 博客前言&#xff1a; 一.简介 1.用户的定义 用户账户分类 2.用户组的定义 二.用户的相关linux语法 1.创建用户&#xff08;useradd&#xff09; 2.删除用户&#xff08;userdel&#xff09; 3.修改用户&#xff08;usermod&#xff09; 4.修改用户密码 5.su切…

计算机概论

计算机概论 1.CPU&#xff0c;负责大量运算2.内存3.操作系统 1.CPU&#xff0c;负责大量运算 1、频率是CPU 每秒可以进行的工作次数&#xff0c;如 3.0 GHz 的 CPU 每秒可以进行 3*10 的 9 次方次&#xff0c;各个组件通过南桥与北桥连接至 CPU 2、CPU 外频与倍频 外频&…

智慧城市的新宠儿:会“思考”的井盖

在城市化飞速发展的今天&#xff0c;我们或许未曾过多地关注那些平凡却至关重要的井盖。它们无声地矗立在城市的每个角落&#xff0c;守护着深藏于地下的城市生命线&#xff0c;然而&#xff0c;这些井盖并未满足于传统的角色&#xff0c;它们正逐步融入智慧城市的宏大画卷中&a…

android PopWindow弹不出输入法和遮挡输入框的问题

背景&#xff0c;在popWindow弹输入法&#xff0c;注意两个地方&#xff0c; 当前版本号pop要获取焦点 兼容版本号 弹出软键盘 private fun showSoftInput() {if (Build.VERSION.SDK_INT > 30) {"版本大于等 30".log()binding.etNewUser.windowInsetsControll…

Python程序员面试准备:八股文题目与解答思路

目录 描述一下Python中的列表推导式(List Comprehension)及其用法。 代码示例&#xff1a; 解答思路&#xff1a; 解释一下Python中的装饰器(Decorator)及其作用。 代码示例&#xff1a; 输出&#xff1a; 解答思路&#xff1a; 谈谈Python中的GIL(Global Interprete…

四步玩转数字名片-- 推贴,让你的名片飞起来

四步玩转数字名片-- 推贴&#xff0c;让你的名片飞起来 名片设计路径&#xff1a; 1-进入编辑查看名片→点击【创建名片&#xff1a;完善名片信息】 2-进入编辑界面→编辑个人业务&#xff0c;公司组织业务 3-创建多种业务名片。 头像即第一印象&#xff1b; 好照片让客户的关…

Gitee教程2(完整流程)

1.配置git git config --global user.name "用户名" git config --global user.email "密码" 如何获取&#xff1f; gitee右上角加号点击新建仓库&#xff0c;仓库名随便起一个就行 找到这条命令&#xff0c;把这两句一个一个复制到vscode终端就行 2.创建g…

网络基础与通信原理:构建数字世界的框架

目录 初识计算机网络 网络介绍 按照拓扑分类 按地域分类 网络设备 交换机&#xff08;switch&#xff09; 路由器&#xff08;router&#xff09; 传输介质 双绞线 光纤 光纤速度 ISO ISO和OSI有什么关系呢&#xff1f; OSI七层模型 TCP/IP四层 TCP/IP协议族 …

VMware ESXi 8.0的安装、配置、使用

VMware ESXi 8.0的安装、配置、使用 ESXi的安装与配置下载镜像安装网络配置 Web控制台的管理操作激活开启直通网络配置修改电源模式创建虚拟机 其他ESXI秘钥克隆虚拟机 ESXi的安装与配置 下载镜像 官网&#xff1a;https://www.vmware.com/ 文档&#xff1a;https://docs.vm…

提示词工程简单介绍

提示词工程&#xff0c;又称为Prompt Engineering&#xff0c;是自然语言处理&#xff08;NLP&#xff09;领域中的一个重要概念&#xff0c;特别是在与语言模型&#xff08;如ChatGPT&#xff09;交互时。它涉及使用精心设计的提示词或指令来引导模型生成特定类型的响应。 …