1.编写一个脚步,读取src目录的文件,然后编译它们,转移到OUTPUT目录,然后把OUTPU下的文件打包
编写一个文件写linux线程与线程间通信(消息队列)

if [ ... ]; then ... fi
if [ ! -d "$SRC_-DIR" ]; then 的意思是:“如果名为 $SRC_DIR 的目录不存在,那么就执行 then 后面的命令。
2>&1
将标准错误输出,也重定向到标准输出当前所指向的地方
将标准错误输出,也重定向到标准输出当前所指向的地
read: Shell 内建命令,用于读取输入。
IFS=: 临时清空内部字段分隔符,防止分词。
basename:提取文件名部分
用法: basename -- "$c_file"
tar -cvf
-
参数:
-
-c: Create,创建一个新的归档。
-
-z: 通过 gzip 进行压缩。
-
-v: Verbose,显示详细的处理过程。
-
-f: File,指定归档文件的名字。后面必须紧跟文件名。
-
-C <dir>: 在执行操作前,先切换到 。
-
$(filter <pattern>,<text>)
它会检查 <text> 中的每一个单词,如果某个单词匹配 <pattern>,就把它保留下来。最后返回所有被保留下来的、用空格隔开的单词列表。

首先判断 SRC_IDR是不是一个目录
!-d "SRC_DIR" 不是一个目录
for file in "SRC_DIR"/*; 通配符,找所有的文件
创建一个目录
一个shell指令 找所有的源文件 清空输入空字字符号
basename -- "$c_file" 提取文件
模板:
#PROJECT_DIR "."
1.检查环境参数
check_environment(){
echo "check environment"
if(! -f "Makefile")
echo "Makefile didnot exist"
exit 1
fi
echo "check Command make and gcc"
local commands = {"make","gcc"}
for cmd in "${commands[@]}"; do
if ! command -v $cmd &> /dev/null; then
echo "$cmd didnot exist"
exit 1
fi
mkdir -p $BUILD_DIR
}
2.
编译函数
build()
{
echo "begin to build project"
make -j(proc) 2>&1 | tee -a $LOG_FILE
echo "build success"
}
构建
函数: