我是 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/