题目:批量修改家目录下的文件扩展名,使用位置参数传递两种扩展名,例如txt文件为csv
文件。(注:碰到特殊符号使用\进行转义)
这里想问一下两个代码的区别。(上面运行不对,没有成功修改扩展名,下面正确运行)
后面发现是if判断的问题,上面这个if判断到底错在哪里?
UpdateType()
{
ls /home > /root/updatefile.txt
sed "s/.$1/.$2/g" /root/updatefile.txt > /root/updatefile1.txt
count=1
for i in `ls /home`
do
f=$(sed -n "$count p" /root/updatefile1.txt)
echo $f
if [ -f /home/$i -a -f /home/$f ]
then
mv /home/$i /home/$f
fi
count=$(($count+1))
done
echo "重命名扩展名成功"
}
```bash
UpdateType()
{
ls /home > /root/updatefile.txt
sed "s/.$1/.$2/g" /root/updatefile.txt > /root/updatefile1.txt
count=1
for i in `ls /home`
do
f=$(sed -n "$count p" /root/updatefile1.txt)
if [ /home/$i != /home/$f ]
then
mv /home/$i /home/$f
fi
count=$(($count+1))
done
echo "重命名扩展名成功"
}