【发布时间】:2020-12-26 01:56:44
【问题描述】:
脚本具有以下内容:
#/bin/bash
path_elements=$(echo $PATH | tr ":" " ")
echo ${#path_elements[*]}
我的 PATH 变量包含多个目录。但是,运行时,输出返回:
1
为什么不返回 $PATH 中的目录数?需要什么来解决这个问题?
【问题讨论】:
-
如果你想变得狡猾,你可以回答“没什么;你得到了正确的数组长度”。尽管
[*]而不是[@]在风格上不一定是最佳实践——在这两个 确实 存在语义差异的情况下,后者几乎总是更可取。 -
Bash 数组支持很奇怪;允许将常规参数视为长度为 1 的数组只是一个奇怪的问题。