今天的脚本是为了实现一个功能
有一个线上服务器,需要在web界面调用shell脚本,实现一键下载选定图片的功能。并且要求是用户下格式和编码方式通用,不会出文件载下来的格式未知和乱码的现象。
基本思路:
web应用传递用户选择的图片参数,通过执行shell脚本 后跟用户所选参数, 实现用户需求传入,在shell里面实现图片压缩和格式转换。(利用shell $1的参数原理,加上cut和awk处理传入参数,最后在脚本内部复制,压缩,编码转换,由web调出最终文件,下载)
脚本如下:
#!/bin/bash
################
zipname=`echo $1 | awk -F "hkrt" '{print $1}' | awk -F "/" '{print $11}'` ###传入参数分解
zipurl=`echo $1 | awk -F "hkrt" '{print $1}' | awk -F "/" '{print | "cut -d / -f -"(NF-1)}'` ####传入参数分解
url=`echo $1 | awk -F "hkrt" '{for (i=2;i<NF;i++) printf $i" ";print $NF}'` ####传入参数分解
mkdir -p $zipurl/test
for i in `echo $url`
do
n=`echo $i|cut -b 3-`
cp $n $zipurl/test
done
if [ $? = 0 ]
then
cd $zipurl/test/
convmv -f UTF-8 -t GBK --notest * ####这一步转换文件名称格式为windows编码方式
zip $zipname.zip * ############压缩
mv $zipname.zip $zipurl
rm -rf $zipurl/test/* #########删除临时文件
fi
fi
附:
传入参数为:
/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/uus6/201403/18/2014031813563343_用户下载文件以此命名18002hkrt3_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/uus6/201403/18/2014031813450936_营业执照.jpghkrt0_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813445296_法人_身份证.jpghkrt0_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813445595_法人_身份证.jpghkrt0_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813445827_营业场所照片.jpghkrt2_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813450281_营业执照(山西).jpghkrt2_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813450536_营业执照(山西).jpghkrt4_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813451465_法人_身份证.jpghkrt4_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813451978_法人_身份证.jpghkrt
有一个线上服务器,需要在web界面调用shell脚本,实现一键下载选定图片的功能。并且要求是用户下格式和编码方式通用,不会出文件载下来的格式未知和乱码的现象。
基本思路:
web应用传递用户选择的图片参数,通过执行shell脚本 后跟用户所选参数, 实现用户需求传入,在shell里面实现图片压缩和格式转换。(利用shell $1的参数原理,加上cut和awk处理传入参数,最后在脚本内部复制,压缩,编码转换,由web调出最终文件,下载)
脚本如下:
#!/bin/bash
################
zipname=`echo $1 | awk -F "hkrt" '{print $1}' | awk -F "/" '{print $11}'` ###传入参数分解
zipurl=`echo $1 | awk -F "hkrt" '{print $1}' | awk -F "/" '{print | "cut -d / -f -"(NF-1)}'` ####传入参数分解
url=`echo $1 | awk -F "hkrt" '{for (i=2;i<NF;i++) printf $i" ";print $NF}'` ####传入参数分解
mkdir -p $zipurl/test
for i in `echo $url`
do
n=`echo $i|cut -b 3-`
cp $n $zipurl/test
done
if [ $? = 0 ]
then
cd $zipurl/test/
convmv -f UTF-8 -t GBK --notest * ####这一步转换文件名称格式为windows编码方式
zip $zipname.zip * ############压缩
mv $zipname.zip $zipurl
rm -rf $zipurl/test/* #########删除临时文件
fi
fi
附:
传入参数为:
/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/uus6/201403/18/2014031813563343_用户下载文件以此命名18002hkrt3_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/uus6/201403/18/2014031813450936_营业执照.jpghkrt0_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813445296_法人_身份证.jpghkrt0_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813445595_法人_身份证.jpghkrt0_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813445827_营业场所照片.jpghkrt2_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813450281_营业执照(山西).jpghkrt2_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813450536_营业执照(山西).jpghkrt4_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813451465_法人_身份证.jpghkrt4_/usr/uus2/uus/uus3-uus4-4.0.25/uus5/uusm/noad/201403/18/2014031813451978_法人_身份证.jpghkrt