在linux下执行declare -A fruite_value 报错

这个是 shell关联数组用的,别告诉我 用这个。declare -a fruite_value
这是运行结果:
bash: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
我在网上看到好多资料,都说可以用这个命令,但是我的为啥就不行呢??
最新回答
星空下流浪

2025-06-17 04:22:25

这个和bash的version有关,不同version,declare命令支持的参数不一样

以我的环境为例,首先执行help declare,查看declare当前支持的信息,如下:

可以看到,-A to make NAMEs associative arrays (if supported),是用来声明关联数组的

使用bash --version,查看bash版本信息:

一切都是bash版本的原因!!!

建议linux中有命令不明白的时候,使用help 命令

人间有爱不孤独。

2025-06-17 02:41:54

bash 版本不对,需4.0以上才支持关联数组。
declare -A 在低版本的bash中不支持这个功能。
沒心沒肺的活著

2025-06-17 06:10:33

要定义一个变量来放游标值啊。
例如:
declare @sid varchar(50)
DECLARE zm_id cursor for
select pcp_id from pos.physical_count_plan
where pcp_id > 'PD0709120099001'

open zm_id

fetch next from zm_id into @sid
while @@fetch status = 0
begin
fetch next from zm_id into @sid
end

close zm_id
deallocate zm_id;
如果 a.out 确实能执行的话
先添加上执行权限,再运行

chmod a+x a.out

./a.out
追问
谢谢你的回答。但是我这个declare命令指的是shell的,不是sql的。