批量将 *.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
# [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
相关文章推荐
- Criteria.Tools.Executor————测试
- Linux 0.11内核编译和bochs上的实验环境的搭建
- 用C/C++扩展你的PHP 为你的php增加功能
- Android NDK and pthread
- (OK-HALF) To Find a Rogue DHCP Server—tcpdump/dhclient—nmap
- linux-0.11内核调试运行阅读环境的搭建及使用
- acl 3.1.2版本发布,网络通信与服务器编程框架
- (OK) Linux epoll模型—socket epoll server client chat
- 格式化 C/C++语言源码——命令indent
- FreeBSD 10.1 64位操作系统安装图解
- bochs+gdb源码级调试Linux 0.12内核测试环境构建
- 2010嵌入式归渊--收集的命令
- bochs + gdb 调试linux0.11
- Linux用户空间与内核空间
- 新版《星光大道》
- ARM开源物联网操作系统mbed
- 在Linux下用C扩展PHP(打包成so)的方法
- epoll pthread—share the same epoll file descriptor among threads?
- this关键字
- 如何自定义标签