关于数组的批量处理-伪数组法

简介:

之前曾写过一篇《Linux/UNIX不同shell环境下数组的处理》,在这里简单谈谈Bash 和ksh下数组的批量处理。实际中数组在兼容性要求很高的情况下不是很好的实现方式,我个人认为自己构造变量序列也不失是一种解决手段。姑且我把这种数组的批量处理叫做“伪数组法”。
下面的内容适用于bash和ksh,不适用于csh。
eval可以展开变量,相当于把命令放到子shell去执行,这样的变量被替换,并当作命令再次执行。
我们可以通过num=8和eval var$num来引用var8这个变量(适用于bash和ksh,不适用于csh),注意它不同于数组,var8,是我们手动构造的变量。
 

 
  1. num=8 
  2. eval var$num="var8" 
  3. #要特别注意如果在取值的时候""''中现现了空格等等特殊字符,要全部转义。 

上面的应用也常用来对数据进行操作。
关于数据的赋值:
 

 
  1. for i in `seq 1 5` ;do eval var${i}=$(( $i*2 ));done   
  2. #本例子中有些特殊,eval可以用let命令来替代,但是意义是不一样,只是效果一样。 

关于数值的引用 。
 

 
  1. for i in `seq 1 5` ;do eval echo $var${i};done  
  2. #或者$var${i}也可以用$((var${i}))代替 

后记:我们基至可以基于这个思想,根据需要批量定义许多数组变量,并结合《Linux/UNIX不同shell环境下数组的处理》中提到的数组的定义、删除和数组中元素的增加和删除步骤,这样在Shell中处理数组就更加得心应手了。


     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/490534,如需转载请自行联系原作者




相关文章
|
1月前
|
存储 Python
处理随机元素来创建数列是一个涉及随机数生成和数列构造的过程
处理随机元素来创建数列是一个涉及随机数生成和数列构造的过程
14 0
|
4月前
|
存储 JavaScript 前端开发
数组:数组是JS中的一种特殊对象,用于存储一组有序的数据。需要掌握数组的创建、访问、修改以及各种内置方法。
数组:数组是JS中的一种特殊对象,用于存储一组有序的数据。需要掌握数组的创建、访问、修改以及各种内置方法。
37 2
|
5月前
442. 数组中重复的数据
442. 数组中重复的数据
|
6月前
|
JSON C# 数据格式
数组比较的几种方式
1、string.Equals() ```csharp string[] strList1= new string[3] {"1", "2", "3"}; string[] strList2= new string[3] {"4", "5", "6"}; if (!string.Equals(strList1, strList2)) { // 比较数组的不同之处 } // 涉及到修改日志输出等数组可以直接json序列化然后用上述方法比较即可,如下 if (!string.Equals(JsonConvert.SerializeObject(list1), JsonConvert
41 0
|
9月前
|
存储 C#
C#视频—浅谈数组与集合的差别
C#视频—浅谈数组与集合的差别
|
9月前
|
JavaScript 前端开发
javascript随机生成固定数组长度和最大最小值的封装函数
javascript随机生成固定数组长度和最大最小值的封装函数
39 0
|
10月前
|
JavaScript API
伪数组转数组的几种方法
伪数组转数组的几种方法
80 0
|
JavaScript 索引
伪数组(类数组)
伪数组(类数组)
57 0
|
前端开发
前端学习案例1-数组反序&排序&乱序的方法
前端学习案例1-数组反序&排序&乱序的方法
49 0
前端学习案例1-数组反序&排序&乱序的方法