1.编写一个脚步,读取src目录的文件,然后编译它们,转移到OUTPUT目录,然后把OUTPU下的文件打包

编写一个文件写linux线程与线程间通信(消息队列)

image

 

if [ ... ]; then ... fi

if [ ! -d "$SRC_-DIR" ]; then 的意思是:“如果名为 $SRC_DIR 的目录不存在,那么就执行 then 后面的命令。

2>&1

将标准错误输出,也重定向到标准输出当前所指向的地方

 

将标准错误输出,也重定向到标准输出当前所指向的地

read: Shell 内建命令,用于读取输入。

IFS=: 临时清空内部字段分隔符,防止分词。

basename:提取文件名部分

用法basename -- "$c_file" 

tar -cvf 

  • 参数:

    • -cCreate,创建一个新的归档。

    • -z: 通过 gzip 进行压缩。

    • -vVerbose,显示详细的处理过程。

    • -fFile,指定归档文件的名字。后面必须紧跟文件名

    • -C <dir>: 在执行操作前,先切换到 

$(filter <pattern>,<text>) 

  它会检查 <text> 中的每一个单词,如果某个单词匹配 <pattern>,就把它保留下来。最后返回所有被保留下来的、用空格隔开的单词列表。

 

image

 首先判断 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"

}

构建

 

函数: