首页 > 解决方案 > ksh:获取数组的最后一个元素 - 找不到命令

问题描述

在我的脚本中,其中一个函数返回一个数组值,我想获取它的最后一个值并将“cd”放入该目录

函数名称是“文件夹”,它返回一个包含值的数组 - 4.5.0 6.0 2.3.1

如果我使用 - cd $(folders[-1]),我将面临以下错误 -my_script.sh: line 350: folders[-1]: command not found

在使用 -cd ${folders[-1]}时,我得到 -my_script.sh: line 350: folders: bad array subscript

我在这里错过了什么,谢谢

标签: shellksh

解决方案


${foo[-1]}适用于我的 ksh。但如果它不适合你,也许:

#!/bin/ksh93
foo=(1 2 3)
echo "${foo[-1]}" # Should print 3
echo "${foo[${#foo[@]} - 1]}" # Should also print 3

${#foo[@]}返回数组变量中元素的数量,因此您只需从中减去一个即可获得最后一个元素。


推荐阅读