`

shell小试

阅读更多
初学shell和make,今天,尝试写了一个为每本C源程序生成编译的makefile脚本:)
#!/bin/sh

rootdir=/BTMU/$1
if [ "$1" = "" ];then
    echo "arg error,not input version!!!"
    exit 1;
fi   
if [ "$2" = "" ];then
    echo "arg error,not input source file list file!!!"
    exit 1;
fi   
export rootdir
if [ ! -d "$rootdir" ];then
    echo "rootdir is not dir"
    exit 1;
fi
cmddir=`pwd`

echo $rootdir

cat /dev/null > sys.txt
cat /dev/null > compileok.txt
cat /dev/null > cmd.txt
ALLINC="-I \
/BeTRAN/include/"

cd $cmddir
rm -f log/*.txt

if [ ! -d "$cmddir/mak/" ];then
    cd $cmddir
    mkdir mak
fi
cd $cmddir
rm -f mak/*.mak

cmdR="xlc"
CFLAG="-c -qsuppress=1506-342"
INCFLAG="-I"

cat $2 |while read line
do   
    file="$rootdir/$line"
    filename=`basename "$file"`
    dirname=`dirname "$file"`
    echo commpar:$file
    if [ ! -f "$file" ];then
        echo "$file" >>$cmddir/sys.txt
        echo "$file is not file" >$cmddir/log/$filename.txt
        cat $cmddir/log/$filename.txt
        sleep 10
    else
        cd $dirname
        echo path:`pwd`
        echo "$filename.o : $file">$cmddir/mak/$filename.mak
        echo "    cd $dirname; $cmdR $CFLAG $INCFLAG../inc/ $ALLINC $file">>$cmddir/mak/$filename.mak
        make -f $cmddir/mak/$filename.mak 2>> $cmddir/commpar.log
        tfile=`cat $cmddir/commpar.log`
        if [ "$tfile" = "" ];then
            echo result :$file ok!!!
            echo $file is ok!!! >>$cmddir/compileok.txt
            echo "ok" >$cmddir/log/$filename.txt
        else
            cp $cmddir/commpar.log $cmddir/log/$filename.txt
        fi
        rm $cmddir/commpar.log
    fi
done
分享到:
评论

相关推荐

    cmd操作MongoDB数据库牛刀小试.pptx

    在CMD中启动MongoDB shell后,你可以开始进行数据库的操作。MongoDB中的数据库是数据的容器,集合(类似于传统数据库中的表)则是存储数据的地方。在MongoDB中,你不需要预先创建数据库和集合,当尝试向一个不存在的...

    简化Debian系统配置的脚本及相关文件

    简化Debian系统配置的脚本及相关文件,脚本在博文《Shell 脚本小试牛刀 -- Debian系统初装后的各种配置》中有所介绍,希望大家多多支持

    高级Bash脚本编程指南

    Bash是Unix和Linux操作系统中最常用的shell之一,其强大的功能支持使得Bash脚本成为自动化任务、数据处理等应用场景中的首选工具。 #### 第一部分 初见Shell ##### 1. 为什么使用shell编程 Shell脚本编程能够帮助...

    leetcode下载-newbee-handbook:新手手册

    shell: oh-my-zsh [*] 用 brew 安装 git, python [*]用 pip 安装 virtualenv Python 环境配置 使用 virtualenv 配置虚拟环境 github 使用 注册 github 帐户; 创建一个新项目; 添加一个 README.md 文件,并提交到...

Global site tag (gtag.js) - Google Analytics