Chinaunix首页 | 论坛 | 博客
  • 博客访问: 325055
  • 博文数量: 122
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 1340
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-03 20:40
个人简介

智者,既能奋发不休,又能尽人事,顺天命

文章分类

全部博文(122)

文章存档

2014年(39)

2013年(46)

2012年(12)

2011年(3)

2010年(20)

2009年(2)

我的朋友

分类:

2010-03-12 15:42:13



a="a
b
c"

ar=($a)

这种形式比较方便,因为很多现有的列表都是一行一行的,可以直接copy过来。但如果一行当中有空格,并且原本打算一行作为一个数组元素的话,就会有些问题


a="a b
c d
e f"

ar=($a)

这时“a b”是两个数组元素。

解决办法是重设IFS变量,因为数组元素默认是用IFS变量的第一个字符来分割,所以在数组赋值前临时改变一下IFS第一个字符的值,比如设为分号“;",这样在vi中可以快速的在每一行的行尾添加分号后在copy过来就OK了。

需要注意的是,不要简单的将IFS设为单一的分号,还是要保留换行符,否则每一个元素都会有一个换行符.


IFS=";\n"

不过既然数组元素分隔符是以IFS定义的第一个字符为准,那为什么“\n”还会起作用。

头大,不想了。

阅读(4245) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~