我有一个包含40个子目录的主目录,其名称为[Set 1]
,[Set 2]
... [Set 40]
,每个子目录包含20个名称为1.jpg
的壁纸,2.jpg
,...... 20.jpg
。我想将所有这些壁纸移动到主目录,并将其重命名为1.jpg
,2.jpg
... 800.jpg
。我编写了以下Bash脚本但收到错误。
i=1; j=1; k=1;
while [ $i -ne 41 ]; do
j=1;
while [ $j -ne 21 ]; do
mv \[Set\ $i\]/$j.jpg $k.jpg;
j=$j+1;
k=$k+1;
done;
i=$i+1;
done
bash: [: 1+1: integer expression expected
bash: [: 1+1: integer expression expected
我在哪里犯了错误?
答案 0 :(得分:3)
在bash中,您可以在$(())
中附上数学/算术运算,所以
i=1; j=1; k=1;
while [ $i -ne 41 ]; do
j=1
while [ $j -ne 21 ]; do
mv "[Set ${i}]/${j}.jpg" $k.jpg
j=$(($j+1)) k=$(($k+1))
done
i=$(($i+1))
done
应该做你想做的......