Bash for循环获取上一个和下一个项目

Gui*_*ume 5 bash loops

我想做一个循环,在循环内获取上一个和下一个项目.

目前,我使用以下循环:

for file in $dir;do
    [...do some things...]
done
Run Code Online (Sandbox Code Playgroud)

我可以在C中做一些事情,例如,文件[i-1]/file [i + 1]来获取上一个和下一个项目吗?有没有简单的方法来做到这一点?

Viv*_*vek 7

declare -a files=(*)
for (( i = 0; i < ${#files[*]}; ++ i ))
do
  echo ${files[$i-1]} ${files[$i]} ${files[$i+1]}
done
Run Code Online (Sandbox Code Playgroud)

在第一次迭代中,索引-1将打印最后一个元素,在最后一次迭代中,索引max + 1将不会打印任何内容.