我有以下Bash脚本。它会在3个(或更多)目录中查找图片。
#!/bin/sh
declare -a ext=(".tga" ".jpg" ".png")
declare -a directory=(
"../Untitled.ed.tga/" "../Untitled.ed.jpg/" "../Untitled.ed.png/")
for ((ctDir=0; ctDir<${#directory[@]}; ctDir++));
do
#get number of Pix in each Dir
cd ${directory[${ctDir}]}
let numPixInDir[${ctDir}]=$(
bc <<< " $( ls *${ext[${ctDir}]} | wc -l) " )
let "f = numPixInDir[${ctDir}]"
echo "f == ${f}"
echo "numPix == ${numPixInDir[${ctDir}]}"
done
for ((ctN=1; ctN<=${f}; ctN++));
do
for ((ctDir=0; ctDir<${#directory[@]}; ctDir++));
do
printf "%05d\t" ${ctN}
done
printf '\n'
done
只要目录具有相同数量的文件,上述操作就可以满足我的要求,但是如果我将变量$ {f}设置为每个目录的数组-
let "f[${ctDir}] += numPixInDir[${ctDir}]"
然后第一个for循环引发错误:
((: ctN<=: syntax error: operand expected (error token is "=")
有人知道我如何成功做到这一点吗?