Background
每个脚本开发的背后都是由需求推动的。这次是为了在Linux环境下并行运行一个程序,一个实例一个目录,然后就有了这个脚本。这个脚本只是目录的自动拷贝和删除。以下是源码,这个脚本有四个必传参数:
- srcdir:第一个是源目录,就是被拷贝的原目录;
- operate:第二个是具体操作,复制或删除生成的复制目录;
- start:第三个是起始数;
- end:第四个是终止数。
1、operate-dir.sh
#/bin/bash
:<<!
【脚本说明】
1、此脚本一个作用是把一个源目录复制成多份,每一份的后缀数字递增;
2、另一个作用是删除复制的目录;
3、需要传入两个参数,生成或删除的起始目录后缀数字。
!
# 被复制的源目录
srcdir=$1
# 操作,复制或删除
operate=$2
# 起始数
start=$3
# 终止数
end=$4
# 复制生成的目录包含的字符
dstdirinclude='_copy_'
# 复制生成的目录前缀
dstdirprefix=${srcdir/\//}$dstdirinclude
# 提示信息
msg='Please input params [<srcdir> <copy|delete> <start> <end>]'
# 定制化shell输出
function custom_print(){
echo -e "\033[5;34m ***** \033[0m"
echo -e "\033[32m $@ ! \033[0m"
echo -e "\033[5;34m ***** \033[0m"
}
# 生成目录
function do_copy(){
# 循环执行
for i in `seq ${start} ${end}`
do {
cp -r $srcdir $dstdirprefix$i
msg="create success $dstdirprefix$i"
custom_print $msg
}
done
}
# 删除目录
function do_delete(){
# 循环执行
for i in `seq ${start} ${end}`
do {
rm -rf $dstdirprefix$i
msg="delete success $dstdirprefix$i"
custom_print $msg
}
done
}
# 判断输入参数
if [[ -z $srcdir || -z $operate || -z $start || -z $end ]]; then
custom_print $msg
else
# 判断是什么操作
if [[ $operate = "copy" ]]; then
do_copy
elif [[ $operate = "delete" ]]; then
do_delete
else
custom_print $msg
fi
fi
2、使用介绍