shell脚本
#!/bin/bash
################################################
# 将某文件夹下“前缀+开始序号+后缀” 到
# “前缀+结束序号+后缀”的文件传送至另一文件夹下
#
#-d : 源文件夹
#-t : 远程备份目标目录
#-m : 本地备份目录
#-p : 文件前缀
#-s : 后缀
#-b : 开始序号
#-e : 结束序号
################################################
DIR="./"
TO=""
MOVE=""
PRE=""
SUF=""
BEGIN="0"
END=""
while getopts d:t:m:p:s:b:e: opt
do
case $opt in
d)
DIR=$OPTARG
echo $DIR;;
t)
TO=$OPTARG
echo $TO;;
m)
MOVE=$OPTARG
echo $MOVE;;
p)
PRE=$OPTARG
echo $PRE;;
s)
SUF=$OPTARG
echo $SUF;;
b)
BEGIN=$OPTARG
echo $BEGIN;;
e)
END=$OPTARG
echo $END;;
/?)
echo "坏参数!";;
esac
done
if [ "$TO"x = "x" ] ## 空格!! “[]”、“=”前后, 多增加个x比较,防止变量不存在
then ## then!! 若与if同行,则‘]’需加 分号‘;’
echo "目标目录未指定"
exit 1
fi
if [ "$END"x = "x" ]
then
echo "结束序号未指定"
exit 1
fi
if [ "$MOVE"x = "x" ]
then
echo "本地备份目录未指定"
exit 1
fi
ORDER=$BEGIN
while [ "$ORDER" -le "$END" ]
do
FILE="$DIR/$PRE$(($ORDER))$SUF"
if [ -f $FILE ]
then
echo $FILE
rsync $FILE $TO
mv $FILE $MOVE
fi
ORDER=$(($ORDER+1))
done
#end
######################################
if语句的格式:
"[ ]" , "=" 的前后空格
then与if同行,']'后的分号