#!/bin/bash
SCRIPT=$(readlink -f "$0")#$0为脚本名,$(readlink -f "$0")子shell里执行一条命令返回该脚本绝对路径并赋值给SCRIPT
BASEDIR=$(dirname"$SCRIPT")#将当前脚本路径赋值给BASEDIRcd$BASEDIR#切换到当前脚本目录if[! -d CodeCraft-2021 ]#判断CodeCraft-2021是不是目录,如果不是目录进行thenthenecho"ERROR: $BASEDIR is not a valid directory of SDK_C++ for CodeCraft-2021."#输出错误提示$BASEDIR不是有效目录echo" Please run this script in a regular directory of SDK_C++."#提示请在SDK_C++里运行该脚本exit -1 #返回-1fi
cmake --version 2>&1 #判断cmake版本
tmp=$?#上一句执行的返回值赋值给tmpif[${tmp} -ne 0 ]#tmp!=0thenecho"ERROR: You should install cmake(2.8 or later) first."#提示安装cmake2.8版本或者更高版本echo" Please goto https://cmake.org to download and install it."#提示去cmake论坛下载exitfirm -fr bin #删除bin文件夹mkdir bin #创建bin文件夹rm -fr build #删除build文件夹mkdir build #创建build文件夹cd build #切换目录至build
cmake ../CodeCraft-2021 #编译build上一个文件下的CodeCraft-2021,在CMakeLists.txt指导下,并生成Makefile文件
tmp=$?#命令返回值赋值给tmpecho"cmake return:"${tmp}#输出${tmp}if[${tmp} -ne 0 ]#如果${tmp}不等于0thenecho"cmake <>return:"${tmp}#输出${tmp}exit -1 #退出并返回-1fimake#执行make命令
tmp=$?#命令返回值赋值给tmpecho"make return:"${tmp}#输出${tmp}if[${tmp} -ne 0 ]#如果${tmp}不等于0thenecho"make <>return:"${tmp}#输出#输出exit -1 #退出并返回-1fi
2、build_and_run.sh
#!/bin/bash
SCRIPT=$(readlink -f "$0")#$0为脚本名,$(readlink -f "$0")子shell里执行一条命令返回该脚本绝对路径并赋值给SCRIPT
BASEDIR=$(dirname"$SCRIPT")#将当前脚本路径赋值给BASEDIRcd$BASEDIR#切换到当前脚本目录
sh build.sh #执行build.sh脚本cd bin #切换到bin文件夹下
./CodeCraft-2021 #执行./CodeCraft-2021
3、CodeCraft_zip.sh
#!/bin/bash
SCRIPT=$(readlink -f "$0")#$0为脚本名,$(readlink -f "$0")子shell里执行一条命令返回该脚本绝对路径并赋值给SCRIPT
BASEDIR=$(dirname"$SCRIPT")#将当前脚本路径赋值给BASEDIRcd$BASEDIR#切换到当前脚本目录if[! -d CodeCraft-2021 ]#判断CodeCraft-2021是不是目录,如果不是目录进行thenthenecho"ERROR: $BASEDIR is not a valid directory of SDK_C++ for CodeCraft-2021."#输出错误提示$BASEDIR不是有效目录echo" Please run this script in a regular directory of SDK_C++."#提示请在SDK_C++里运行该脚本exit -1 #返回-1firm -f CodeCraft-2021.zip #删除CodeCraft-2021.zip,不管其存不存在zip -r CodeCraft-2021.zip * #压缩CodeCraft-2021文件夹