`

数组--声明-定义-追加-清楚操作--(网上收集)

    博客分类:
  • OS
 
阅读更多

[关于声明]
比较通用的做法,如kshbash
declare -a
数组名

注意在ksh下还支持另外一种独特的变量声明赋值语法比较特殊。


set -A varname var1 var2 var3 varn

末了要说明一下,一般任意的shell下变量可以拿来就用,不必声明。

[关于赋值]
下面的两种这种方法适用于bashksh
定义一
varname=(var1 var2 var3 varn)
定义二
varname[0]=var1
varname[1]=var2
varname[2]=var3
varname[n-1]=varn
定义三
csh我们需要这样定义:
set varname=(var1 var2 var3 varn)
set varname[1]=var1
set varname[2]=var2
set varname[3]=var3
set varname[n]=varn

特别注意在csh和其它shell中不同的是数组的下标是从1开始的。

[关于引用]
全部引用
方法一
适用于bashkshcsh等大部分shell
${varname[*]}
方法二
只适用于bashksh,对于csh不适用。
${varname[@]}

方法三

只适用于csh,不支持kshbash
$varname

单独引用
语法适用于bashkshcsh等大部分shell,但是在csh/tcsh下的意义和其它shell有差异。
${varname[n]}
例如:echo ${barname[3]}

请严格区分cshbashcsh的区别。因为在csh中没有下标为0的数组元素,下标的序数是从1开始的。


数组包含数值的数目

方法一:
只适用于bashksh,不支持csh
${#varname[*]}
方法二:

只支持csh,不支持bashksh

$#varname


数组中某一个值的字符长度
只适用于bashksh,不支持csh
${#varname[1]}

bashksh $varname${varname[0]}的含意是一样的; $varname[1]${varname[1]}含意是不一样的,$varname[1]等价于${varname[0]}"[1]"。在csh $varname${varname[*]}的含意是一样的。

[元素的添加、删除]
删除数组中元素:
该方法适用于bashksh,不支持csh
unset varname[5]
关于数组中元素的值的清除,即置空:
bash
ksh下这样操作,不支持csh
varname[5]= #
清除数组varname中的第六个元素
关于数组的清除:
适用于bashkshcsh等大部分shell
unset varname

向数组中添加元素:
方法一、二只适用于bashksh,不适用于csh

方法一:
varname=(${varname[*]} varn-1 varn varn+1)
方法二:
varname[${#varname[*]}]=varn
方法三:
csh特有的。
set varname=($varname varn+1 varn+2) #
或者$varname${varname[*]}替换。

[关于数组的批量处理]
这部分内容,说白了就是综合运用各种shell的内建循环命令。只要对前面的内容熟悉了,并对各种shell的循环命令有一定的了解,难度就不是很大。
由于涉及bashkshcsh下的实现及不同的语法形式,涉及数组的赋值、添加和删除元素、读取多个方面。所以计划单独一篇文章来说明。

 

 

分享到:
评论

相关推荐

    关于JS数组追加数组采用push.apply的问题

    以上的代码在mac的chrome下抛出了如下的异常 代码如下:Uncaught RangeError: Maximum call stack size exceeded如果把数组改为b = new Array(125623);小一个元素居然就好了,测试了一下其他浏览器也都有大数组才出错...

    javascript进行数组追加方法小结

    javascript中给数组加元素是一个非常简单的问题,javascript本身就提供了大量这类函数,我们可以使用js自带函数快速给数组增加元素了,本文就javascript进行数组追加的方法做出如下小结。以前常用的是arr.concat(arr2...

    ruby 数组处理大全.doc

    ruby数组处理大全 如函数名称 说明 示例 &数组与,返回两数组的交集 [1,2] & [2,3] =>[2] *复制数组n次 [1,2]*2 => [1,2,1,2] +返回两数组的并集,但不排除重复元素 [1,2]+[2,3] =>[1,2,2,3] 追加元素,但不...

    php 操作数组(合并,拆分,追加,查找,删除等)

    1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为: 复制代码 代码如下: array array_merge (array array1...

    matlab字符串数组

    资源描述: 字符串数组 matlab ...您可以按照标准数组运算对字符串数组进行索引、重构和串联,还可以使用 + 运算符向它们追加文本。如果字符串数组表示数字,则可以使用 double 函数将其转换为数值数组。

    追加数据分列操作-LH-camera

    利用xlrd读取xls数据,对xls表进行追加分列操作,利用openpyxl保存数据到新xls文件中。

    在数组中添加一个元素

    在数组中添加一个元素,程序完全可以运行,方便大家学习

    Java封装数组之添加元素操作实例分析

    主要介绍了Java封装数组之添加元素操作,结合实例形式分析了Java封装数组实现元素追加、插入等相关操作技巧,需要的朋友可以参考下

    jQuery完全实例.rar

    这个函数的作用如同$(document).ready()一样,只不过用这个函数时,需要把页面中所有需要在 DOM 加载完成时执行的$()操作符都包装到其中来。从技术上来说,这个函数是可链接的--但真正以这种方式链接的情况并不多...

    redis 缓存技术学习笔记

    edis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,...区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

    JavaScript笔记

    JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是...

    JS追加新闻列表方法-王义军-201809131

    JS追加新闻列表方法-王义军-201809131

    Java 文件追加操作

    Java 文件追加操作··················································

    java-IO操作-(读写、追加、删除、移动、复制、修改).doc

    java_IO操作_(读写、追加、删除、移动、复制、修改).,含代码,可直接使用

    jQuery实现合并/追加数组并去除重复项的方法 原创

    本文实例讲述了jQuery实现合并/追加数组并去除重复项的方法。分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ...

    PHP学习之数组的定义和填充

    另外说说数组其它一些小东西: array()可以声明一个空数组; array[] = $value 在数组存在时,追加一个数据;在数组不存时,生成一个数组,并追加数据。 array[$index] = $value 在数组存在时,追加或修改一个数据...

    MySQL数据库应用-实验训练7:“网上商城”项目实验

    MySQL数据库应用-实验训练7:“网上商城”项目实验实验目的:结合前面6个实验,参照第10章“汽车用品网上商城”应用系统的展现,完整了解网上商城系统前台功能、后台功能,以及页面功能操作与数据库操纵之间的关系,...

    mysql-connector-java-commercial-5.1.30-bin.jar

    然后配置classpath,追加%JAVA_HOME%\lib\mysql-connector-java-5.1.30-bin-g.jar;C:\Program Files\Java\mysqlforjdbc\mysql-connector-java-5.1.30-bin.jar;到该环境变量中去 追加以后环境变量如下: CLASSPATH=...

    aliyun-oss-upload-stream, 一个 node.js 模块,用于通过多部分上传API将数据流到 Aliyun 操作系统.zip

    aliyun-oss-upload-stream, 一个 node.js 模块,用于通过多部分上传API将数据流到 Aliyun 操作系统 aliyun-oss-upload-stream 官方指定Nodejs模块~可以上传大文件,根据上传数据方式不同而不同,将对象方式文件最大...

Global site tag (gtag.js) - Google Analytics