bash:5没有关联数组。可能吗? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我测试我的bash脚本的同事给我发了这个截图

bash5 without associative arrays

他从brew安装了bashdeclare有可能-A没有bash:5选项吗?

我用docker检查了一下,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是自制软件中bash软件包的页面,我没有在Formula ruby​​安装脚本的./configure部分找到任何特殊选项。

bash macos homebrew configure
1个回答
1
投票

回答你的问题“你可以编译Bash而不支持关联数组”:有一个configure option --enable-array-variables,我强烈怀疑它会关闭对普通数组和关联数组的支持。据我所知,没有办法关闭关联数组。

更有可能的是,您的脚本始于

#!/bin/bash

在macOS上,它是没有关联数组的Bash 3.2;修复是使用

#!/usr/bin/env bash

代替。有关详细信息和更多替代方案,请参阅this answer

© www.soinside.com 2019 - 2024. All rights reserved.