此问题已经在这里有了答案:
我测试我的bash脚本的同事向我发送了此屏幕截图
他从brew安装bash
。 declare
中是否可能没有-A
选项?
我与docker进行了相同的检查,bash:5
必须具有bash:5
:
-A
没有$ docker run -it bash:5
bash-5.0# declare -A
declare -A BASH_ALIASES=()
declare -A BASH_CMDS=()
时,屏幕截图类似于bash:3
输出:
associative arrays support
是否可以在不支持关联数组的情况下编译$ docker run -it bash:3
bash-3.2# declare -A
bash: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
?
[bash:5
是自制软件中Here软件包的页面,在Formula ruby安装脚本的bash
部分中没有发现任何特殊选项。
要回答您的问题“您是否可以在不支持关联数组的情况下编译Bash”:有一个./configure
configure
option,我强烈怀疑它会关闭对普通数组和关联数组的支持。据我所知,没有办法仅关闭关联数组。
很有可能,您的脚本开头为
configure
在macOS上是没有关联数组的Bash 3.2;该修复程序将使用
--enable-array-variables
相反。有关详细信息和更多替代方法,请参见#!/bin/bash
。