ZMonster's Blog 巧者劳而智者忧,无能者无所求,饱食而遨游,泛若不系之舟

Bash 3.x 与 Bash 4.x中declare命令的区别

问题

今天下午的时候,测试的妹子说我写的脚本出了问题,跑过去一看,出错提示是:

declare: -A: invalid option

我写的脚本里有两处使用

declare -A

分别定义了一个关联数组

一开始很诧异,这你的'declare'和我的'declare'还能不一样了?尝试了一下,还确实是不一样,妹子机器上的'declare'命令压根就没有'-A'这个选项。

Bash 版本

'declare' 是 Bash内建的命令,既然两台机器上的'declare'不一样,那应该Bash也会不一样吧?抱着这样的心理,分别看了下两台机器的Bash版本。

果然,出问题的机器上,Bash版本是3.x,而我的机器上的Bash版本是4.x。在网上搜了一下相关信息,才知道关联数组是在Bash 4.x中才支持的。这就是问题的原因了。

也懒得继续用关联数组了,毕竟要适配不同的Bash版本,工作量还是略大。反正两个关联数组是用来存中间结果的,于是索性写到两个临时文件里去了,稍微多做了一点处理就OK了。

后记

这么短的博客难道不是在凑数吗?

真没有啊!_(:3」∠)_