我有一个包含 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
我哪里出错了?
最佳答案
在 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
应该做你想做的..
关于linux - bash: [: 1+1: 预期的整数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34285831/