zoukankan      html  css  js  c++  java
  • shell 数组,双层循环打印变量

    双层循环,打印循环执行次数.

    特别注意 ,shell 脚本赋值时 '=' 两侧不能有空格,否则报错,shell command not found

    但在if 语句中需要有:

    STR1="abc" STR2="abcd"

    if[$STR1=$STR2](错误写法)

    if [ $STR1 = $STR2 ](正确写法)

    http://www.cnblogs.com/han-1034683568/p/7217047.html

    my_array=(1 3 4 5 9 10 12 22 23 24 25 29 30 31 32 33 34 35 36 41 42 43 44 45 46 49 50 101)
     
    k=0
    for(( i=0;i<${#my_array[@]};i++))
     
        do
     
        for (( j=i+1 ;j<${#my_array[@]};j++))
      
            do let k++ 
    		echo $k
    		echo "ok"
     
        done
     
    done
    

      

      

    Shell 数组

    数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

    与大部分编程语言类似,数组元素的下标由0开始。

    Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

    array_name=(value1 ... valuen)

    实例

    
    my_array=(A B "C" D)

    我们也可以使用下标来定义数组:

    array_name[0]=value0
    array_name[1]=value1
    array_name[2]=value2

    读取数组

    读取数组元素值的一般格式是:

    ${array_name[index]}

    实例

    
    my_array=(A B "C" D)
    
    echo "第一个元素为: ${my_array[0]}"
    echo "第二个元素为: ${my_array[1]}"
    echo "第三个元素为: ${my_array[2]}"
    echo "第四个元素为: ${my_array[3]}"

    执行脚本,输出结果如下所示:

    $ chmod +x test.sh 
    $ ./test.sh
    第一个元素为: A
    第二个元素为: B
    第三个元素为: C
    第四个元素为: D

    获取数组中的所有元素

    使用@ 或 * 可以获取数组中的所有元素,例如:

    
    my_array[0]=A
    my_array[1]=B
    my_array[2]=C
    my_array[3]=D
    
    echo "数组的元素为: ${my_array[*]}"
    echo "数组的元素为: ${my_array[@]}"

    执行脚本,输出结果如下所示:

    $ chmod +x test.sh 
    $ ./test.sh
    数组的元素为: A B C D
    数组的元素为: A B C D

    获取数组的长度

    获取数组长度的方法与获取字符串长度的方法相同,例如:

    
    my_array[0]=A
    my_array[1]=B
    my_array[2]=C
    my_array[3]=D
    
    echo "数组元素个数为: ${#my_array[*]}"
    echo "数组元素个数为: ${#my_array[@]}"

    执行脚本,输出结果如下所示:

    $ chmod +x test.sh 
    $ ./test.sh
    数组元素个数为: 4
    数组元素个数为: 4

    http://www.runoob.com/linux/linux-shell-array.html

    -------------------------------------------------------------------------

    数组遍历

    首先创建一个数组 array=( A B C D 1 2 3 4)

    1、标准方法:

    for(( i=0;i<${#array[@]};i++)) do
    #${#array[@]}获取数组长度用于循环
    echo ${array[i]};
    done;
    

      

    2、for.. in.. 不带下标

    for element in ${array[@]}
    #也可以写成for element in ${array[*]}
    do
    echo $element
    done
    

      

    带下标注:

    for i in "${!arr[@]}";   
    do   
        printf "%s	%s
    " "$i" "${arr[$i]}"  
    done  
    

      

    3、while 循环

    i=0  
    while [ $i -lt ${#array[@]} ]  
    #当变量(下标)小于数组长度时进入循环体
    do  
        echo ${ array[$i] }  
        #按下标打印数组元素
        let i++  
    done  
    

      https://blog.csdn.net/lockey23/article/details/74625744

  • 相关阅读:
    Maven学习笔记
    [学习笔记] 网络流
    [Contest on 2021.11.3] 女子口阿
    [杂题合集] 25 岁小伙突然没了心跳,他的习惯很多年轻人都有!
    CSP 2021 提高组游记
    [题目小结] 可持久化数据结构
    [学习笔记] 无向图和有向图的连通分量
    [Contest on 2021.10.17] HustOJ 就是个 **
    [Contest on 2021.10.15] 细思极恐
    妖怪寺外,灯火通明
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/10535792.html
Copyright © 2011-2022 走看看