关于二维数组的实现问题:通过查询网友们的记录,可知有两个方法

方法1:通过通过2次读取赋值,来获取二维数组的方法。

a=('1 2 3'  '4 5 6'  '7 8 9')

for i in "${a[@]}" ; do
b=($i) #此时b就相当于二维数组里面的一维数组了,然后可以再次遍历
for j in "${b[@]}"; do
#do someting
done
done

  但是这样写之后,发现一个问题:${a[@]}和${a[*]} 一般情况下都能显示全部的数组元素,但是要实现二维数组的效果,不能使用${a[*]},使用${a[*]}对于for循环而言,直接读取全部的记录

示例如下:

arr=('Joe Math990112 89' 'Mike CS991301 100' 'Mary EE990830 95')
+ for i in '"${arr[*]}"'
+ echo Joe Math990112 89 Mike CS991301 100 Mary EE990830 95 #此处打印$i
Joe Math990112 89 Mike CS991301 100 Mary EE990830 95
+ arr2=($i)
+ echo Joe Math990112 89 Mike CS991301 100 Mary EE990830 95 #此处打印${arr2[*]}
Joe Math990112 89 Mike CS991301 100 Mary EE990830 95

 方法2:使用行列位置来做判断:

#/bin/bash
arr4=(Joe Math990112 89 Mike CS991301 100 Mary EE990830 95) h=0
for (( h >=0 ;h <= $(expr ${#arr[*]} / 3 );h++))
do
name=${arr4[$(expr $h \* 3  + 0)]} #本例中,列数为3,那么对应二维值就是 (0 1 2) (3*1+0 3*1+1 3*1+2)(3*2+0 3*2+1 3*2+2)
num=${arr4[$(expr $h \* 3  + 1)]}
score=${arr4[$(expr $h \* 3  + 2)]}
echo "$name >> $num >> $score"
done

  

shell练习--关于二维数组的实现问题的更多相关文章

  1. 如何利用shell或者awk二维数组实现9x9乘法表?

    第一种:利用shell for循环来实现. for i in `seq 1 9`do for j in `seq 1 9` do if [ $i -ge $j ] then echo -en &quo ...

  2. 第3章 Java数组(上): 一维数组和二维数组

    3.数组及排序算法(2天) 3.1 数组的概述 2课时 3.2 一维数组的使用 3课时 3.3 多维数组的使用 3课时 3.4 数组中涉及到的常见算法 3课时 3.5 Arrays工具类的使用 3课时 ...

  3. PHP 二维数组根据某个字段排序

    二维数组根据某个字段排序有两种办法,一种是通过sort自己写代码,一种是直接用array_multisort排序函数 一. 手写arraysort PHP的一维数组排序函数: sort  对数组的值按 ...

  4. 剑指Offer-【面试题03:二维数组中的查找】

    package com.cxz.question3; /* * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. * 请完成一个函数,输入这样的一个二维数组和 ...

  5. PHP开发笔记:二维数组根据某一项来进行排序

    比如说我们现在有一个二维数组: $arr = array( ‘d' => array(‘id' => 5, ‘name' => 1, ‘age' => 7), ‘b' => ...

  6. 剑指Offer面试题:2.二维数组中的查找

    一.题目:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

  7. PHP 根据key 给二维数组分组

    我们经常拿到一个二维数组出来,会发现结果和自己想要的有些偏差,可能需要根据二维数组里的某个字段对数组分组.先来看以下数组, Array ( [0] => Array ( [id] => 1 ...

  8. Python学习笔记 之 递归、二维数组顺时针旋转90°、正则表达式

    递归.二维数组顺时针旋转90°.正则表达式 1.   递归算法是一种直接或间接调用自身算法的过程. 特点: 递归就是在过程或函数里调用自身 明确的递归结束条件,即递归出口 简洁,但是不提倡 递归次数多 ...

  9. 个人学习记录1:二维数组保存到cookie后再读取

    二维数组保存到cookie后再读取 var heartsArray = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0],[0,0, ...

随机推荐

  1. Could not find aapt Please set the ANDROID_HOME environment variable with the Android SDK root directory path

    写case写好好哒,突然debug的时候就冒出这个错误: selenium.common.exceptions.WebDriverException: Message: An unknown serv ...

  2. LeetCode.937-重新排序日志数组(Reorder Log Files)

    这是悦乐书的第358次更新,第385篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第220题(顺位题号是937).你有一系列日志.每个日志都是以空格分隔的单词串. 每个日 ...

  3. C#后台正则表达式

    static Regex RegPhone = new Regex(@"^((1[34578][0-9]{1}))\d{8}");        static Regex RegN ...

  4. 启用hdfs的高可用

    cm-HDFS: 选择另外一个节点的做NN, 生产选node3 选择三个节点作journalNode, node2,3,4 填入journalNode的目录/dfs/jn 经过一系列步骤,如果没报错 ...

  5. spring boot-1.简单介绍及环境搭建

    1.简介 spring boot 是在spring 基础上进行了全面整合的架构,个人认为优点在于以下几点: 1.简化配置,甚至零配置即可开发出一个web应用.spring boot 默认配置了大量的s ...

  6. mysql 加密 解密函数

    select   HEX(AES_ENCRYPT('你好世界','ABC123456')) select   AES_DECRYPT(UNHEX('E85A104B6142A7375E53C0545C ...

  7. 微信小程序 报错 “对应的服务器无效。控制台输入 showRequestInfo()可以获取更详细信息”

    之前做的项目突然无法读出数据了,一测试发现报这个错误==>对应的服务器无效.控制台输入 showRequestInfo()可以获取更详细信息,后来发现是SSL证书到期了.重新申请了一个证书,免费 ...

  8. CentOS 7 安装MongoDB 4.0

    1.创建yum源文件 /etc/yum.repos.d/mongodb-org-4.0.repo [mongodb-org-4.0] name=MongoDB Repository baseurl=h ...

  9. wex5 windowDialog组件

    windowDialog组件可以实现页面跳转 xid:windowDialog src:$UI/lohas/detailedknowledge.w 父页:myknowledge.w Model.pro ...

  10. SVM支持向量机(1)

    一.SVM模型 1.函数间隔与几何间隔,哪一条线是最好的? (1)公式化问题. 分类模型:当里面的值小于0的时候就是-1,当里面的值是大于等于0的时候就是1 函数间隔:前面乘以y(i),是为了保持数值 ...