shell 数组

Shell 传递参数和Shell 数组 阅读详情

bash shell只支持一维数组,但参数个数没有限制。

声明一个数组:
declare -a array
(其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组)

数组赋值:
(1) array=(var1 var2 var3 ... varN)
(2) array=([0]=var1 [1]=var2 [2]=var3 ... [n]=varN)
(3) array[0]=var1
    arrya[1]=var2
    ...
    array[n]=varN

计算数组元素个数:
${#array[@]}  或者  ${#array[*]}

BASH的特殊参数 @ 和 * 都表示“扩展位置参数,从1开始”,但形式稍有差异,但在数组里使用好像是可以通用的。

引用数组:

复制代码代码如下:

echo ${array[n]}

遍历数组:

复制代码代码如下:

filename=(`ls`)
for var in ${filename[@]};do
echo $var
done

len=${#arr[@]}
for((i=0;i<len;++i))
do
    echo ${arr[$i]}
done


下面为大家介绍一些shell数组的小例子。

1、从“标准输入”读入n次字符串,每次输入的字符串保存在数组array里

复制代码代码如下:

#!/bin/bash
i=0
n=5
while [ "$i" -lt $n ] ; do
  echo "Please input strings ... `expr $i + 1`"
  read array[$i]
  b=${array[$i]}
  echo "$b"
  i=`expr $i + 1`
done

2、将字符串里的字母逐个放入数组,并输出到“标准输出”

复制代码代码如下:

#!/bin/bash
chars='abcdefghijklmnopqrstuvwxyz'
for (( i=0; i<26; i++ )) ; do
    array[$i]=${chars:$i:1}
    echo ${array[$i]}
done

这里有趣的地方是 ${chars:$i:1},表示从chars字符串的 $i 位置开始,获取 1 个字符。如果将 1 改为 3 ,就获取 3 个字符啦~ 结果是:
abc
bcd
...
vxy
xyz
yz     //没有足够字符串获取了
z      //没有足够字符串获取了

下面介绍将数组应用到shell环境变量的一些例子。

3、将数组应用到shell环境变量(1)

复制代码代码如下:

数组赋值:
[root@pps ~]# SEASON=("Srping" "Summer" "Autumn" "Winter")
当你发现赋值错了,也可以立刻从新赋值纠正,如上面的 Spring 被写成 Srping。
重新赋值:(原来的值被重写)
[root@pps ~]# SEASON=("Spring" "Summer" "Autumn" "Winter")

查看一下环境变量:
[root@pps ~]# set | grep SEASON
SEASON=([0]="Spring" [1]="Summer" [2]="Autumn" [3]="Winter")

显示整个数组:
[root@pps ~]# echo ${SEASON[*]}  或者 echo ${SEASON[@]}
Spring Summer Autumn Winter

显示某一数组元素:
[root@pps ~]# echo ${SEASON[3]}
Winter

给单个数组元素赋值:
[root@pps ~]# SEASON[0]="New_Spring"

再查看一下看数组:
[root@pps ~]# echo ${SEASON[*]}
New_Spring Summer Autumn Winter

清除指定的单个数组元素:
[root@pps ~]# unset SEASON[2]

清除整个数组:
[root@pps ~]# unset SEASON

4、将数组应用到shell环境变量(2) 
使用tr命令将文件中的回车转换成空格:

复制代码代码如下:

[root@pps ~]# cat /etc/shells | tr "\n" " " > /tmp/tmp.file

将文件中内容给数组赋值:(碰到第一个回车符之前的内容)
复制代码代码如下:

[root@pps ~]# read -a SHELLS < /tmp/tmp.file

查看数组赋值情况:
复制代码代码如下:

[root@pps ~]# set | grep "SHELLS"
SHELLS=([0]="/bin/sh" [1]="/bin/bash" [2]="/sbin/nologin" [3]="/bin/tcsh" [4]="/bin/csh" [5]="/bin/ksh")

后面可以将这个数组环境变量应用到其它的SHELL脚本或者应用程序里了。

总结:有了以上的这些内容,以后在shell编程中,对数组这块来讲,应该不成什么问题了,你做到了吗?!

【shell】shell脚本实战-shell数组 文章目录数组的定义数组的简单介绍数组的引用数组使用举例数组的切片与替换1. 根据索引切片2. 数组替换总结 数组的定义 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。 在 Shell 中,用括号**( )来表示数组,数组元素之间用空格**来分隔。由此,定义数组的一般形式为: array=(value01 value02 … valuen) 注意,赋值号=两边不能有空格,必须紧挨着数 阅读详情

相关推荐

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

bash数组

数组变量可以存放多个值;bash只支持一维数组,初始化时不需要定义数组大小。 bash数组分为普通数组和关联数组,普通数组索引下标为从0开始的整数;关联数组的索引下边可以是字符串。 bash数组用小括号来表示,元素用空格分隔。 1、普通数组: 1.1、赋值: array1=(value1 value2 value3...) 或 array1[0]=value1 array1[1]=value2...

老赵的博客 7424

jenkins连接外部k8s集群

k8s连接集群外Jenkins

liuchao666888的博客 1527

15 个 Bash Array 数组教程

数组是包含多个相同或不同数据类型的集合,数组索引从零开始。本文有 15 个用 bash 操作数组的例子。 1. 声明数组,赋值 当有变量为如下格式的时候,Bash 会自动创建数组。 name[index]=value name 为数组名称index 为任意数字,或表达式的最终计算值大于等于零。可以显式声明数组通过 declare -a arrayname

liufei_learning--脚踏实地,戒骄戒躁! 9105

Ubuntu环境下读取罗技G29方向盘信息

Ubuntu环境下读取罗技G29方向盘信息

工大机器人工作室 3468

高压脉冲发生器的各种电路图

高压脉冲发生器的各种电路图

qq_65102825的博客 5904

BASH 数组用法小结

【小蜗牛五二无聊之作】 BASH只支持一维数组,但参数个数没有限制。 声明一个数组:declare -a array (其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组) 数组赋值:(1) array=(var1 var2 var3 ... varN)(2) array=([0]=var1 [1]=var2 [2]=...

weixin_34407348的博客 321

k230 +canMV+ LVGL控件 仿手表表盘触摸屏滚动、选中后弹窗效果完整示例程序

现在智能手表用的越来越多,其交互方式比较有特点,现在k230开发板上,基于LVGL(Light and Versatile Graphics Library)编写一个嵌入式GUI应用程序,使用LVGL配合触摸屏实现模仿智能手表的表盘滚动效果,实际效果如下:程序使用LVGL图形库和MediaManager程序,创建带有触摸屏交互的GUI应用。程序主要功能包括显示初始化、LVGL初始化、创建GUI界面(包含一个可滚动的按钮列表,每个按钮点击会弹出消息框),以及处理触摸屏输入。

weixin_47446386的博客 1175

bash数组的用法

bash数组

潇洒哥的运维之道 1589

【数据集】中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

WW、forever的博客 2598

基于matlab的主成分分析的人脸二维码识别系统

人脸识别因其在系统安全验证、信用验证、刑侦跟踪、身份管理、视频会议、人机交互、智能家居等方面的巨大应用前景,成为当前模式识别和人工智能领域越来越热门的一个研究方向。随着安全入口控制和二维码智能扫描应用需求的快速增长,基于二维码识别的生物人脸统计识别技术也引起了人们的重视。本案例将详细讲解基于主成分分析的人脸特征提取的原理与方法,并将其与 QR 二维码的编解码进行结合,将 MATLAB 作为工具平台,调用 QR 二维码编解码应用程序,进而实现一个人脸二维码自动识别的系统原型。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 977

bash 数组操作

bash 仅支持一维数组。 为数组赋值: array=(1 4 7 2 5 8) #以空格为分割符,()为数组 str="this is test string" str_arr=($str); #默认以空格分割 数组遍历: for val in str_arr[*];do echo $val; done for file in `ls`;do echo $f...

hjjdebug的专栏 4486

【EB_Tresos专题】-06-配置一个UDS诊断DID

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 4086

shell数组

Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”和“内容共创官”,现在我来为大家介绍一下有关物联网-嵌入式方面的相关内容。简介根据我们学习C语言的经验,数组就是一系列数据的集合。这个数据就是我们之前学习的存储单个元素的最小单元变量,也就是说将一系列的元素整合到一个集合内,这个集合的名称就叫做数组。当然与其他语言一样,数组具备几个条件,在shell中数组仅仅支持一维数组,数组元素的下标从0开始,数组元素没有最大限制等。使用数组的优势。

weixin_74300052的博客 2692

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Shell 数组

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由 0 开始。

yangchuang111213的博客 887

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【shell】shell 数组处理

echo "数组的元素个数为: ${#my_array[*]}"echo "数组的元素个数为: ${#my_array[@]}"echo "数组的元素为: ${my_array[*]}"echo "数组的元素为: ${my_array[@]}"Bash Shell 只支持一维数组(不支持多维数组)echo "数组的键为: ${!echo "数组的键为: ${!获取数组长度的方法与获取字符串长度的方法相同。使用 @ 或 * 可以获取数组中的所有元素。关联数组的键是唯一的。获取数组中的所有元素。

我的笔记本 3085

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

shell中的数组详解

一.Shell数组 和其他编程语言一样,Shell 也支持数组。数组(Array)是若干数据的集合,其中的每一份数据都称为元素(Element)。 Shell 并且没有限制数组的大小,理论上可以存放无限量的数据。和 C++、Java、C# 等类似,Shell 数组元素的下标也是从 0 开始计数。 获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式;当然,下标必须大...

qq_36417677的博客 4254

shell脚本中数组的使用_Shell脚本中的数组

shell脚本中数组的使用Knowing how to work with arrays in shell scripts will help you work with larger datasets in a much efficient manner. But what are arrays and how can you create arrays? Let’s find out! 了解如...

从零开始的教程世界 3317

Shell数组:Shell数组定义以及获取数组元素

1、和其他编程语言一样,Shell 也支持数组。数组(Array)是若干数据的集合,其中的每一份数据都称为元素(Element)。 2、Shell 并且没有限制数组的大小,理论上可以存放无限量的数据。和C++、Java、C#等类似,Shell 数组元素的下标也是从 0 开始计数。 3、获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式;当然,下标必须大于等于 0。 4、遗憾的是,常用的 Bash Shell 只支持一维数组,不支持多维数组。 Shell 数组的定义 ..

Jerry00713的博客 3984

Shell数组

数组是Shell的⼀种特殊变量,是⼀组数据的集合,⾥⾯的每个数据被称为⼀个数组元素。 当前Bash仅支持一维索引数组和关联数组,Bash对数组的大小没有限制。数组中可以存放多个值。初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由 0 开始。Shell 数组用括号来表示,元素用"空格"符号分割开。...

zyy1020075955的博客 1356

Shell基础教程八: Shell数组:shell数组的定义、数组长度

Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。 定义数组 在Shell中,用括号()来表示数组,数组元素用空格符号分割开。定义数组的一般形式为: array_name=(value1 … valuen) 例如: array_name=(value0 value1 value2 value3) 或者

博客简介 931
上一篇: find -exec
下一篇: shell 判断
dodo_check
博客等级 码龄19年 29粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值