shell - 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
我在这里错过了什么,谢谢
解决方案
${foo[-1]}
适用于我的 ksh。但如果它不适合你,也许:
#!/bin/ksh93
foo=(1 2 3)
echo "${foo[-1]}" # Should print 3
echo "${foo[${#foo[@]} - 1]}" # Should also print 3
${#foo[@]}
返回数组变量中元素的数量,因此您只需从中减去一个即可获得最后一个元素。
推荐阅读
- javascript - 如何使用 AJAX 将 .mp4、.mp3 和 .doc 文件与其他 FormData 一起上传?
- javascript - 查询中的 Graphql 条件变量
- python - 错误:找不到满足 protos 要求的版本错误:尝试安装 protos 时未找到 protos 的匹配分发
- json - 如何使用脚本、JSON 和 Books API 在表格中插入 ISBN 的标题值
- assembly - 在内联汇编中使用 C 变量
- python - 使用 python openCV 在绘图上的闭合轮廓区域
- python - Discord.py:有没有办法从 CatAPI 发送图像以与不和谐机器人聊天?
- python - 如何用 matplolib 在形状上画一个洞
- sql - sql oracle - LIKE 与 LEFT JOIN
- bash - 通过使用 zsh 脚本 SSH 到 EC2 以获取 EC2 IP 地址