最近一直在做一些集群环境的搭建的尝试,经常需要在多个设备上做着相同的事情,如果写成脚本,就只用分发脚本就可以了,所以要加强这方面的学习。
美工给了一批图片,是@2x的,命名是xx.png而不是xx@2x.png,一个个的改肯定不行,网上搜一下还是很多这样的脚本的。
#!/bin/bash
old='.png'
new='@2x.png'
dir=$(eval pwd)
for file in $(ls $dir | grep .$old)
do
name=$(ls $file | cut -d. -f1)
mv $file ${name}$new
done
echo "change done!"
ls、grep、mv、echo、pwd算是比较常用的命令,eval 、cut用的少一点。
eval
pwd将路径输出到控制台,eval将pwd的输入结果取了出来,可以搭配带有输出的命令一起使用,如eval echo $JAVA_HOME。
cut
cut -d. #使用点进行分割字符串,
cut -d. -f1 #使用点进行分割字符串,返回第一部分,计数从1开始,没有-f0
cut貌似只能将控制台输出做了输入,
$ echo www.ffff | cut -d. -f1
www
替换
有时候名称中含有中文,需要替换
name='加载中-01'
echo ${name/'加载中'/'loading'}
loading-01
直接使用shell内置的方法就可以,使用sed之类的命令也行。