• shell普通数组与关联数组对比


    关联数组

    [root@centos17 shell]# cat shells_count.sh 
    #!/bin/bash
    #login shell counts 
    
    declare -A shells
    
    while read line
    do
    	type=`echo $line|awk -F":" '{print $NF}'`
    	let shells[$type]++
    done < /etc/passwd
    
    #echo ${!shells[@]} ${shells[@]}
    for i in ${!shells[@]} 
    do
    	printf "%-20s %3s
    " $i ${shells[$i]}		
    done
    [root@centos17 shell]# sh shells_count.sh 
    /sbin/nologin         25
    /bin/sync              1
    /bin/bash              4
    /sbin/poweroff         1
    /sbin/shutdown         1
    /sbin/halt             1
    /usr/sbin/poweroff     1
    [root@centos17 shell]# 
    

      

    普通数组

    [root@centos17 shell]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.0.160 nas
    192.168.5.105 centos17
    [root@centos17 shell]# sh hosts.sh 
    1:127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    2:::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    3:192.168.0.160 nas
    4:192.168.5.105 centos17
    [root@centos17 shell]# cat hosts.sh
    #!/bin/bash
    #hosts display
    
    OLD_IFS=$IFS
    #IFS=$`
    `
    IFS=$'
    '
    
    for i in `cat /etc/hosts`
    do
    	hosts[++a]=$i
    done
    
    
    for j in ${!hosts[@]}
    do
    	echo "$j:${hosts[j]}" 或者echo "$j:${hosts[$j]}"
    done
    [root@centos17 shell]# 
    

     

    小结:

      普通数组:调用数组值时,${hosts[$j]}与${hosts[j]}等价,索引前无需添加$符号。

      关联数组:调用数组值时,只能使用${shells[$i]},索引前必须添加$符号。因为关联数组的索引不能为数字。

    
    

     

  • 相关阅读:
    字符串转换的UnicodeDecodeError—— ‘\xa0’问题
    linux下nginx+uwsgi部署python应用
    字符串转换的UnicodeDecodeError—— ‘\xa0’问题
    python的get和post方式请求详解
    MindManager使用说明
    进入程序员的自由天地
    悦读上品 得乎益友
    C++ 是一门难学易用的语言!
    合上More Exceptional C++的瞬间
    从零开始学ASP.NET
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/13769557.html
Copyright © 2020-2023  润新知