分页: 1 / 1

如何使i=0,i=i+1,i<10,当i=10时break

发表于 : 2012-05-15 0:54
13631689117
今天在坛里看到一段批量重命名文件的shell脚本
tony3322 写的

代码: 全选

#!/bin/bash
echo "?---输入批量文件所在目录(如:/home/andy/图片)(当前目录输入 .即可)---";   
read  directory;
cd  "$directory";
echo "?---输入要重命名文件类型和前缀(如:png  img_  (区分大小写))[以空格分割]---";
read ext  begin;
mkdir  temp
echo ">>>开始批量重命名  $directory 下的 $ext 文件>>>>>>>>>>>>>>";
let  i=0;
             for it in   *.$ext; do
                   mv "$it"   ./temp/"$begin$i.$ext";
                   let i=i+1;
             done
mv  ./temp/*.$ext   ./
rm -r  temp
echo "===完成$i个文件批量重命名,文件列表如下:";
ls  *.$ext
脚本本身没有问题,是我蛋疼的想当i=10时,就不再继续重命名了,类似于,准备重命名的文件夹内有20个文件,我只重命名其中10个。

自己试着用for命令,
for ((i=1;i<15;i++)) ; do 失败
接着试
if [ $i -le 10 ] ; then
continue
else
fi
求指教。

Re: 如何使i=0,i=i+1,i<10,当i=10时break

发表于 : 2012-05-15 9:08
wjchen

代码: 全选

if [ $i -ge 10 ] ; then break ; fi

Re: 如何使i=0,i=i+1,i<10,当i=10时break

发表于 : 2012-05-15 9:30
13631689117
看到回帖后我第一时间测试了一下,成功了,顿时有一种想死的感觉。
非常感谢,wjchen

Re: 如何使i=0,i=i+1,i<10,当i=10时break

发表于 : 2012-05-15 21:29
aerofox

代码: 全选

for ((i=1;i<15;i++)) ; do 
这个应该也是行的,除非你没有第一行(#!/bin/bash)。