shell for循环与数组应用介绍

读取一个文件,把每一行赋值给一个数组的变量,然后用for循环打印出来


代码如下:

#!/bin/sh
i=1
SUM=`sed -n '$=' tmp.txt` #计算文件的总行数
echo "$SUM"
while read line
do
    arr[$i]="$line"
    i=`expr $i + 1`
done < tmp.txt
echo "$i"
i=1
for i in `seq $SUM` ;do
    echo "${arr[$i]}"
done

附:shell数组补充知识

一、声明数组

1)array[key]=value # array[0]=one,array[1]=two
2)declare -a array # array被当作数组名
3)array=( value1 value2 value3 ... )
4)array=( [1]=one [2]=two [3]=three ... )
5)array="one two three" # echo ${array[0|@|*]},把array变量当作数组来处理,但数组元素只有字符串本身

二、访问数组

1)${array[key]} # ${array[1]}

三、删除数组

1)unset array[1] # 删除数组中第一个元素
2)unset array # 删除整个数组

四、计算数组的长度

1)${#array}
2)${#array[0]} #同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的区别

(0)

相关推荐

  • shell for循环与数组应用介绍

    读取一个文件,把每一行赋值给一个数组的变量,然后用for循环打印出来 复制代码 代码如下: #!/bin/shi=1SUM=`sed -n '$=' tmp.txt` #计算文件的总行数echo "$SUM"while read linedo    arr[$i]="$line"    i=`expr $i + 1`done < tmp.txtecho "$i"i=1for i in `seq $SUM` ;do     echo &quo

  • PHP循环遍历数组的3种方法list()、each()和while总结

    ①each()函数 each()函数需要传递一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置.键/值对被返回带有4个元素的关联和索引混合的数组,键名分别为0.1.key和value.其中键名0和key对应的值是一样的,是数组元素的键名,1和value则包含有数组元素的值.如果内部指针越过了数组的末端,则each()返回FALSE.each()函数的使用如下所示: 复制代码 代码如下: <?php $contact = array("ID" =&

  • 利用Shell脚本循环读取文件中每一行的方法详解

    前言 本文主要给大家介绍了关于使用Shell脚本循环读取文件每一行的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.使用for循环 for line in `cat filename` do echo $line done 或者 for line in $(cat filename) do echo $line done 二.使用while循环 while read -r line do echo $line done < filename While循环中rea

  • C# 数组实例介绍(图文)

    数组即是一组相同类型组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素. 数组是具有相同类型的一组数据.当访问数组中的数据时,可以通过下标来指明.c#中数组元素可以为任何数据类型,数组下标从0开始,即第一个元素对应的下标为0,以后逐个递增.数组可以一维也可多维. 一维数组是最基本的数组类型,其声明方法如下: 数据类型 [ ] 数组名 ; 举例: int [ ] anArray ; // 声明一个整型的一维数组 具有两个维度的数组是二维数组,其声明方法如下: 数据类型 [ , ]

  • JavaScript中关于for循环删除数组元素内容时出现的问题

    昨天用for循环进行数组去重的时候出现的问题, 首先,用双重for循环把前一个和所有后面的元素进行比较,如果相等则删除. 但是,如果数组里面有三个以上连续相等的元素的时候,就会出现问题. var arr = [1,1,1,2,2]; for(var i=0; i<arr.length-1; i++){ for(var j=i+1; j<arr.length; j++){ if(arr[i] === arr[j]){ arr.splice(j,1); } } } document.write(&

  • Javascript循环删除数组中元素的几种方法示例

    本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面来看看详细的介绍: 发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利运行. 下面以一段Javascript代码为例演示这一过程. (function () { var arr = [1,2,2,3,4,5]; var len = arr.lengt

  • JavaScript 基础篇之对象、数组使用介绍(三)

    Javascript:对象 对象我们在前面也简单介绍过,它是一种将多个数据值集中在一个单元的东西,使用名字来存取,它是一个无序的属性集合. 1.创建对象的几种方式 复制代码 代码如下: var empty = {} //创建一个没有属性的对象. var person = {name:"ben",age:22,sex:'男'}//使用直接量创建对象 var people = {{name:'Frank',age:21},{name:'Mary',age:21},sex:'MAN'}//

  • shell脚本字符串和数组的使用操作方法

    字符串 可以使用单引号和双引号定义字符串变量但是单引号中不支持变量解析 #! /bin/bash username="mayuan" str_1="hello ${username}" str_2='hello ${username}' echo $str_1 # hello mayuan echo $str_2 # hello ${username} 获取字符串的长度 #! /bin/bash username="mayuan" echo ${

  • linux shell常用循环与判断语句(for,while,until,if)使用方法

    shell的循环主要有3种,for,while,until shell的分支判断主要有2种,if,case 一,for循环 #!/bin/bash for file in $(ls /tmp/test/mytest |grep sh) //for in格式是shell for的基本格式,根js的for in类似 do //循环开始你就把它当成{ echo $file done //循环结束你就把它当成} for ((i=0;i<10;i++)) //注意是双小括号,由于受其他语言的影响,很容易搞

  • JS中循环遍历数组的四种方式总结

    本文比较并总结遍历数组的四种方式: for 循环: for (let index=0; index < someArray.length; index++) { const elem = someArray[index]; // ··· } for-in 循环: for (const key in someArray) { console.log(key); } 数组方法 .forEach(): someArray.forEach((elem, index) => { console.log(

随机推荐