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

标签 bash loops

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

目前,我正在使用以下循环:

for file in $dir;do
    [...do some things...]
done

我可以像在 C 中那样做,例如,file[i-1]/file[i+1] 来获取上一个和下一个项目吗?有什么简单的方法可以做到这一点吗?

最佳答案

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

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

关于Bash for 循环获取上一个和下一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13659047/

相关文章:

bash - 测试 bash shell 脚本

linux - 带有连续管道的 grep 不起作用

javascript - 如何循环遍历对象的对象?

c++ - 在 C++ 中,为什么我们不能使用 > 和 < 来比较迭代器?

php - 使用 PHP 在 x 个 DIV 之后插入不同的 DIV

python - 逐行读取文件时出现名称未定义错误python

bash - "No such file or directory"简单的 bash 重定向

linux - Grep 大量命令,按行排列,带有颜色

c# - 循环 DataTable 或更多数据库调用哪个更有效?

python - 如何从bash脚本获取python脚本中目录路径的变量?