Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MacOS上的bash脚本中使用关联数组_Bash_Associative Array_Macos Mojave - Fatal编程技术网

在MacOS上的bash脚本中使用关联数组

在MacOS上的bash脚本中使用关联数组,bash,associative-array,macos-mojave,Bash,Associative Array,Macos Mojave,我正在使用MacOS(Mojave10.14.6)并尝试编写bash脚本。我已经使用brew安装了最新版本的bash-5.0.16(1)版本(x86_64-apple-darwin18.7.0) 我没有更新/etc/shell文件的权限,因此我尝试使用 #!/usr/bin/env bash bash --version 在我的脚本代码中 这也会返回上面的版本-5.0.16(1)-发行版(x86_64-apple-darwin18.7.0),但在相同的脚本中,我尝试 declare -A sv

我正在使用MacOS(Mojave10.14.6)并尝试编写bash脚本。我已经使用brew安装了最新版本的bash-5.0.16(1)版本(x86_64-apple-darwin18.7.0)

我没有更新/etc/shell文件的权限,因此我尝试使用

#!/usr/bin/env bash
bash --version
在我的脚本代码中

这也会返回上面的版本-5.0.16(1)-发行版(x86_64-apple-darwin18.7.0),但在相同的脚本中,我尝试

declare -A svcCount
我得到下面的错误

declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
这似乎表明,该脚本仍在使用Mac的默认bash版本3.x

我应该如何更改脚本,以便使用上述关联数组定义的构造


谢谢

如果要使用自制
bash
,请将此保存为
脚本

#!/usr/local/bin/bash
echo $BASH_VERSION
declare -A svcCount
然后使用以下命令使其可执行:

chmod +x theScript
并与以下内容一起运行:

./theScript

在脚本的第一行做shebang/usr/local/bin/bash如果你想用自制的,我也试过了。刚才又尝试了一遍,仍然得到相同的错误请告诉我
/usr/local/bin/bash--version
的输出是什么?不要
bash--version
,而是在脚本中放入
echo$bash_version
。@MarkSetchell-输出/usr/local/bin/bash--version GNU bash,version 5.0.16(1)-发行版(x86\u 64-apple-darwin18.7.0)版权(C)2019免费软件基金会,许可证GPLV3+:GNU GPL版本3或更高版本,这是免费软件;您可以自由更改和重新分发它。在法律允许的范围内,没有任何保证。考虑一个眉毛凸起的RE:一个非社区维基回答一个极其频繁被问到的FAQ。@查尔斯达菲尽管看过,我从来没有理解过,或者在任何地方都能找到,告诉我什么是“社区维基”,或者为什么有人想做一个。谁穿这样的衣服?如何以及为什么?我很高兴知道…MarkSetchell-这起作用了。从你和“查尔斯”的解释中,我现在明白我做错了什么。谢谢