我正在编写一个脚本,该脚本在一系列目录中查找文件是否存在,并在找到时通过pushd
. 该dirs
命令非常令人讨厌,我偶然发现了它的内容的 bash 变量形式,$DIRSTACK
$DIRSTACK
是堆栈中的目录数组。始终保证有 1 个条目,即当前工作目录,然后是推送的目录。
我正在尝试遍历目录列表,但似乎无法让 for 循环接受我尝试自动生成的序列长度:
for i in {1..${#DIRSTACK[*]}}; do
echo ${DIRSTACK[$i]}
done
执行时,bash 失败并出现以下错误:
line 72: {1..2}: syntax error: operand expected (error token is "{1..2}")
老实说,我很难过,因为我已经for i in {1..5}
多次手动编写脚本没有问题,并且给出错误消息,看起来数组项扩展的数量完全按照我的意愿工作。
为什么会出现这个错误?