当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : bash 如何给数组插入元素
帖子发表于 : 2012-03-11 11:55 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
实际上我需要的是一个集合容器。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-11 11:57 
头像

注册: 2010-06-16 1:05
帖子: 14668
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
直接赋值就行了吧。。。


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
3 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-11 12:00 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
下标都不知道,如何赋值!


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-11 12:36 
头像

注册: 2010-06-16 1:05
帖子: 14668
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
不知道有么有判断数组长度的函数


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
5 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-11 14:04 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
有取长度的方法,但也不行。bash 的数组下标可非顺序,简直就是散列表。
代码:
lst=("${lst[@]}" "$new")

这是我想到的唯一方法了!很蛋疼的方法!


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-11 19:43 

注册: 2009-07-01 22:04
帖子: 919
送出感谢: 0 次
接收感谢: 13
kose-1@kose-1-desktop:~$ a=('a' 'b' 'hello' 'c')
kose-1@kose-1-desktop:~$ a[${#a[@]}]="world"
kose-1@kose-1-desktop:~$ echo ${a[@]}
a b hello c world
kose-1@kose-1-desktop:~$ a=('a' 'b' 'hello' 'c')
kose-1@kose-1-desktop:~$ a=("${a[@]:0:3}" "world" "${a[@]:3}")
kose-1@kose-1-desktop:~$ echo ${a[@]}
a b hello world c


_________________
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-11 20:10 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
fnan, 如果下标非顺序必死!


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-12 19:21 

注册: 2009-07-01 22:04
帖子: 919
送出感谢: 0 次
接收感谢: 13
bash下标是有顺序的。


_________________
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-12 19:41 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
说错了,应该是说非连续。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-03-12 20:58 

注册: 2009-07-01 22:04
帖子: 919
送出感谢: 0 次
接收感谢: 13
具体问题要具体对应的,不如给个具体例子看看那里不合适。


_________________
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-06-20 2:35 

注册: 2010-12-27 22:44
帖子: 100
送出感谢: 1
接收感谢: 0 次
自由建客 写道:
说错了,应该是说非连续。


非连续的也可以输出,用${!array[@]}作为循环条件,前提是bash 3.0版本以上,例如:
代码:
array=([0]='a' [3]='b' [5]='c')
for i in "${!array[@]}"
do
    echo "$i -> ${array[$i]}"
done

结果为:
代码:
@_@  02:29:56 Shell $ ./array_echo.sh
0 -> a
3 -> b
5 -> c


最后由 woainvzu 编辑于 2012-06-20 2:55,总共编辑了 1 次

页首
 用户资料  
 
12 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-06-20 2:40 

注册: 2010-12-27 22:44
帖子: 100
送出感谢: 1
接收感谢: 0 次
枫叶饭团 写道:
不知道有么有判断数组长度的函数


${#array[@]} ${#array[*]},例如:
代码:
array=([0]='a' [1]='b' [2]='c')
echo ${#array[@]}
echo ${#array[*]}

结果:
代码:
@_@ 02:37:25 Shell $ ./array_echo.sh
3
3


页首
 用户资料  
 
13 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-06-20 12:25 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
死结,不说了,bash 太低级!
array=([0]='a' [17]='b' [19]='c')
根本无法保证插入后 array[19] 是合法的且其值是 c!


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
14 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-07-02 16:58 

注册: 2010-12-27 22:44
帖子: 100
送出感谢: 1
接收感谢: 0 次
自由建客 写道:
死结,不说了,bash 太低级!
array=([0]='a' [17]='b' [19]='c')
根本无法保证插入后 array[19] 是合法的且其值是 c!

why not?
附件:
a.png
a.png [ 211.4 KiB | 被浏览 1692 次 ]



页首
 用户资料  
 
15 楼 
 文章标题 : Re: bash 如何给数组插入元素
帖子发表于 : 2012-07-02 17:03 

注册: 2010-12-27 22:44
帖子: 100
送出感谢: 1
接收感谢: 0 次
只是append了新的数据之后,之前定义的index就失效了,不过有方法解决,1,输出重定向,2,赋值到新的数组。
只要想解决,总会有方法。。。
附件:
b.png
b.png [ 291.83 KiB | 被浏览 1692 次 ]



页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译