arrays - 如何在 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 机器上不成功。
解决方案
在一个太旧而无法支持负下标的 bash 中,您最终需要执行以下操作:
echo "${array[$((${#array[@]} - 1))]}"
推荐阅读
- javascript - toFixed(2) 不四舍五入?
- javascript - setTimeout() 运行函数但日期未更新
- c# - 如何在 DbContext 中将 Created By 设置为 enitites
- c# - 如何从外键获取值以使用关联值填充列表?
- typescript - 使用 PrimeNg 和 Typescript 在 Angular6 中完成上传后如何在浏览器中查看 pdf 文档
- python - 无外键约束加入
- powershell - Powershell 识别安装了两次相同驱动程序的机器
- css - IE 上的线性渐变
- angularjs - 如何将会话存储值设置为 Angular JS 中的下拉选择字段
- python - 如何根据时间和日期从现有数据中提取特征