首页 > 解决方案 > 如何在 Mac OS 上访问 bash 数组中的最后一项?

问题描述

我必须在 Mac OS 上创建一个 bash 数组,如下所示。$1表示要存储在数组中的 git 提交数 。

IFS=$'\n' read -rd '' -a array<<< "$(git log -n $1 | grep commit |  awk '{print $2}')"

我无法将最后一个数组项作为${array[-1]}. 我收到错误“数组:错误的数组下标”。

但是,当我在 linux OS 上创建数组时,我可以以相同的方式成功访问最后一个数组项。

readarray -t array <<< "$(git log -n $1 | grep commit |  awk '{print $2}')"

echo ${array[-1]}在 Linux 机器上成功,但在 Mac OS 机器上不成功。

标签: arraysbashmacos

解决方案


在一个太旧而无法支持负下标的 bash 中,您最终需要执行以下操作:

echo "${array[$((${#array[@]} - 1))]}"

推荐阅读