忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1466 | 回复: 3

[文本处理] 请教各位大神一个问题 [复制链接]

论坛徽章:
0
发表于 2018-03-09 12:57 |显示全部楼层
  1. for n in $(ls *gz) ;do
  2.     node=$(echo $n |awk -F "-" '{print $2}')
  3.     body_size=$(zcat $n |awk '{a+=$6}END{print a}')

  4.     echo "${body[${node}]}"
  5.     [ "x${body[$node]}" = "x" ]  && body[$node]=$body_size  || body[$node]=$(( ${body[$node]} + $body_size ))

  6.     echo " $node  ---- ${body[$node]} "

  7.     echo ${body[$node]} >> /root/aaa/$node

  8. done
复制代码


  1. + body_size=6218102155
  2. + echo 367256023343
  3. 367256023343
  4. + '[' x367256023343 = x ']'
  5. + body[$node]=373474125498
复制代码



body[$node] 里面的$node 没变过来

论坛徽章:
17
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:07
发表于 2018-03-09 14:05 |显示全部楼层
${body[${node}]}
这个是数组的表示方法,你没定义body数组

论坛徽章:
0
发表于 2018-03-09 14:29 |显示全部楼层
回复 2# chengchow

不是太明白
在for上面加了一句   declare -A body ,好像还不行,还请求指点下

论坛徽章:
17
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:07
发表于 2018-03-09 18:30 |显示全部楼层
本帖最后由 chengchow 于 2018-03-09 18:33 编辑

看错了,左边是数组元素名称,这个不转换

只有在执行的时候才转换
你看到的是
body[$node]=$(( ${body[$node]} + $body_size ))
赋值后面的给body[$node]


[root@AnsibleTower_120 tmp]# sh aa.sh
1 c
2
[root@AnsibleTower_120 tmp]# cat aa.sh
#!/bin/bash


b=1
a[$b]=c
echo "1 "${a[$b]}


b=2
echo "2 "${a[$b]}


您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP