bash shell 脚本 for 循环中的两个变量

标签 bash shell scripting for-loop

我是 shell 脚本的新手。如果我的怀疑太愚蠢,请耐心等待。

我在 2 个不同的目录中有 png 图像和一个可执行文件,它从每个目录中获取图像并处理它们以生成新图像。

我正在寻找可以同时接受两个变量的 for 循环结构。这在 C、C++ 等中是可能的,但我如何完成以下内容。代码显然是错误的。

#!/bin/sh

im1_dir=~/prev1/*.png  
im2_dir=~/prev3/*.png
index=0

for i,j in $im1_dir $im2_dir  # i iterates in im1_dir and j iterates in im2_dir 
do
  run_black.sh $i $j  
done

谢谢!

最佳答案

如果您依赖于两个目录根据语言环境排序顺序进行匹配(如您的尝试),那么数组应该可以工作。

im1_files=(~/prev1/*.png)
im2_files=(~/prev3/*.png)

for ((i=0;i<=${#im1_files[@]};i++)); do
   run_black.sh "${im1_files[i]}" "${im2_files[i]}"
done

关于bash shell 脚本 for 循环中的两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11215088/

相关文章:

linux - 计算日志中最前面的重复行

regex - 多个文件上的 Linux shell

Scripting.Dictionary Lookup-add-if-not-present 只有一键搜索?

linux - 每半小时检查一次,看看if条件是否为真

windows - Windows 的内置 ZIP 压缩可以编写脚本吗?

linux - 拆分一个字符串并从中获取倒数第三个字段?

c++ - 通过 bash 脚本查找和修改函数定义 (C++)

bash - 带时间戳的 Mysql 转储

php - rsync 同步省略目录

Linux Shell printf - 如何打印 %?