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

#!/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

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(190) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
posted @ 2016-02-01 00:00  张同光  阅读(132)  评论(0编辑  收藏  举报