#!/bin/sh
#author : pengzhi
#brief : 批量转换文件到 指定编码
#todo : 优化升级 方向 自动检查文件类型 转换到统一的目标类型
PATH=`pwd`
NAME=""
FROM_ENCODE="GBK"
TO_ENCODE="UTF-8"
function help()
{
echo "Usage : sh iconv.sh -p <path> -n <name> -f <from_encode> -t <to_encode>"
echo "e.g. : sh iconv.sh Iconv ./ all files from gbk to utf8"
echo "e.g. : sh iconv.sh -p ./ -n *.php Iconv ./*php from gbk to utf8"
}
function main()
{
for i in `find "${PATH}" -type f -name "${NAME}"`;
do
echo $i
echo ${i}.tmp
/usr/bin/iconv -f ${FROM_ENCODE} -t ${TO_ENCODE} $i>${i}.tmp
/bin/mv ${i}.tmp $i;
done
}
while getopts "p:n:f:t:h" opt
do
case $opt in
p)echo "opt=p arg=${OPTARG}";
PATH=$OPTARG;;
n)echo "opt=n arg=${OPTARG}";
NAME=$OPTARG;;
f)echo "opt=f arg=${OPTARG}";
FROM_ENCODE=$OPTARG;;
t)echo "opt=t arg=${OPTARG}";
TO_ENCODE=$OPTARG;;
h)echo "opt=h"
help;
exit 1;;
?)echo "opt=?"
help;
exit 1;;
*)echo "opt=*"
help;
exit 1;;
esac
done
if [[ $NAME"x" == "x" ]];then
help;
exit 1;
fi
if [[ $PATH"x" == "./x" ]];then
PATH=`pwd`
fi
echo "*****************************************";
echo "PATH : ${PATH}";
echo "NAME : ${NAME}";
echo "FROM_ENCODE : ${FROM_ENCODE}";
echo "TO_ENCODE : ${TO_ENCODE}";
main;
echo "Finished";
原因分析 PATH变量覆盖了 系统默认的环境变量PATH导致