• 2021-3


    一、网址参考

      1、在线进制转换-IEE754浮点数16进制转换

      2、repo工具的使用详解

      3、浅析 Linux的国际化与地方化机制

      4、Makefile调用shell应该注意的地方(摩斯电码)

    二、实践

      1、在Makefile中用shell命令自动生成版本号:

    方法1:

    rtu.version文件内容:
    R7V1.2.0
    version:
        @echo "#ifndef __VERSION_H_" > $(SCCU_DIR)/include/version.h
        @echo "#define __VERSION_H_" >> $(SCCU_DIR)/include/version.h
        @BUILD_TIME=`LC_TIME=en date +%y%m%d`; 
        VERSION=`cat rtu.version`; 
        NOW_VERSION="$${VERSION}-$${BUILD_TIME}"; 
        echo "NOW_VERSION=$${NOW_VERSION}"; 
        echo "#define SCCU_VERSION "$${NOW_VERSION}"" >> $(SCCU_DIR)/include/version.h; 
        echo "#endif" >> $(SCCU_DIR)/include/version.h 

     方法2:

    rtu.version 文件内容:
    RTU_TYPE=7
    VERSION_MAJOR=1
    VERSION_MINOR=2
    VERSION_REVISION=0
    version:
        @echo "#ifndef __VERSION_H_" > $(SCCU_DIR)/include/version.h
        @echo "#define __VERSION_H_" >> $(SCCU_DIR)/include/version.h
        @BUILD_TIME=`LC_TIME=en date +%y%m%d`; 
        RTU_TYPE=`awk -F= '{if(/^RTU_TYPE/)print $$2}' rtu.version`; 
        MAJOR_VER=`awk -F= '{if(/^VERSION_MAJOR/)print $$2}' rtu.version`; 
        MINOR_VER=`awk -F= '{if(/^VERSION_MINOR/)print $$2}' rtu.version`; 
        REV_VER=`awk -F= '{if(/^VERSION_REVISION/)print $$2}' rtu.version`; 
        FULL_VER=R$${RTU_TYPE}V$${MAJOR_VER}.$${MINOR_VER}.$${REV_VER}-$${BUILD_TIME}; 
        echo "VERSION = $${FULL_VER}"; 
        echo "#define SCCU_VERSION "$${FULL_VER}"" >> $(SCCU_DIR)/include/version.h; 
        echo "#endif" >> $(SCCU_DIR)/include/version.h 

    注意脚本语句中的$$、;和 (前面有个空格)的用意:

      1)shell中的变量前面都需要加$$

           2)在Makefile中执行shell命令,一行创建一个进程来执行。这也是为什么很多Makefile中有很多行的末尾都是“;  ”,以此来保证代码是一行而不是多行,这样Makefile可以在一个进程中执行

        3)在Makefile中只能在target中调用Shell脚本,其他地方是不能输出的; 如 

    VAR="Hello"
    echo "$VAR"
    
    all:
       .....

      以上代码任何时候都不会输出,没有在target内,如果上述代码改为如下:

    VAR="Hello"
    
    all:
        echo "$VAR"
        .....

    以上代码,在make all的时候将会执行echo命令。

        2. 查看设备IP地址 

      当ifconfig不能用时,可以使用如下命令:  

        ip addr show (ifconfig不能用时)
        ip address show

  • 相关阅读:
    Django项目:CMDB(服务器硬件资产自动采集系统)--01--01CMDB获取服务器基本信息
    rabbitmq 实现多个消费队列
    mssql附加的数据库查询的时候没有搜索权限
    mvc 返回json格式时间格式化
    HighChat动态绑定数据 数据后台绑定(四)
    双向绑定
    v-bind 属性绑定
    v-on 事件触发
    v-text和v-html绑定数据显示
    插值表达式
  • 原文地址:https://www.cnblogs.com/shanyu20/p/14484719.html
Copyright © 2020-2023  润新知