免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5114 | 回复: 5
打印 上一主题 下一主题

请教一下命令结果存入数组的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-28 20:01 |只看该作者 |倒序浏览
  1. $ ls -al
  2. drwxr-xr-x  4 liu liu  4096 2009-09-28 19:45 .
  3. drwxrwx---  5 liu liu  4096 2009-09-11 09:21 ..
  4. -rw-r--r--  1 liu liu   126 2009-09-28 14:45 aaa.conf
  5. -rw-r--r--  1 liu liu   268 2009-09-28 13:33 bbb.conf
  6. -rw-r--r--  1 liu liu   241 2009-09-28 19:44 ccc
复制代码


  1. cc=(`ls -al|awk '/.conf/{print}'`)
  2. echo ${cc[@]}

  3. -rw-r--r--  1 liu liu   126 2009-09-28 14:45 aaa.conf -rw-r--r--  1 liu liu   268 2009-09-28 13:33 bbb.conf
复制代码


数组的每个元素都是以空格区分的,怎么样才能以行的形式存入数组呢


cc=`ls -al|awk '/.conf/{print}/'`
就算是我把结果赋到一个变量里,echo出来的结果也没有换行符,初学shell,本想自己搜索答案,可我又描述不清楚,所以希望大家帮助一下

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
2 [报告]
发表于 2009-09-28 20:07 |只看该作者
echo "${cc[@]}"

论坛徽章:
0
3 [报告]
发表于 2009-09-28 20:23 |只看该作者

回复 #2 MYSQLER 的帖子

  1. cc=(`ls -al|awk '/.conf/{print}'`)
  2. echo "${cc[@]}"
复制代码

为什么数组的这个没变化,对了,我还有个问题是怎么样把结果以行的方式存入数组中?

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
4 [报告]
发表于 2009-09-28 21:48 |只看该作者
看看IFS吧,本版置顶的13问里有讲

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2009-09-28 22:07 |只看该作者
数组中各个元素都是用空格分隔的, 你没必要指定换行符。

论坛徽章:
0
6 [报告]
发表于 2009-09-28 22:55 |只看该作者
命令输出结果以行的形式存入数组中,我刚刚想到一方法,虽然有点繁琐,好歹解决能我的疑问,就不要打击我了,以我目前对shell的了解,我只能做到这一步。
  1. cc=($(ls -al|awk '/.conf/{print}'|tr ' ' '|'))
  2. for ((x=0;x<${#cc[@]};x++)); do
  3.         cc[$x]=$(echo ${cc[$x]}|tr '|' ' ')
  4. done
复制代码


刚刚学习shell没几天,有很多东西完全不明白,相信我以后能用更好的方法做到上面的一步(希望我不会三天打鱼)
我假期准备细细的看一遍热心朋友介绍的十三问,再次感谢各位朋友,晚安~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP