您的位置:首页 > 其它

批量将 *.c 预处理为 *.i (递归处理文件夹中所有文件)gcc -E

2016-02-01 00:00 453 查看
#!/bin/sh

# [root@localhost /]# ./alter-c2i.sh linux-kernel

function scandir() {

local cur_dir workdir newerdir

newerdir="/root"

workdir=$1

cd ${workdir}

if [ ${workdir} = "/" ]

then

cur_dir=""

else

cur_dir=$(pwd)

fi

for dirlist in $(ls ${cur_dir})

do

if test -d ${dirlist};then

cd ${dirlist}

scandir ${cur_dir}/${dirlist}

cd ..

elif test -f ${dirlist};then

name=${dirlist%.*}

namei=${name}.i

suffix=${dirlist#*.}

if [ "${suffix}" == "c" ];then

gcc -E ${dirlist} > ${namei}

tmp_dir=$(pwd)

mkdir -p ${newerdir}${tmp_dir} 2> /dev/null

mv ${namei} ${newerdir}${tmp_dir}

fi

fi

done

}

if test -d $1

then

scandir $1

elif test -f $1

then

echo "you input a file but not a directory,pls reinput and try again"

exit 1

else

echo "the Directory isn't exist which you input,pls input a new one!!"

exit 1

fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: