#!/bin/bash # Program # This program config olt products type # Version V1.0 # Author zhaoxiaohu #History #2018/01/29 First release export SWHOME=$(cd `dirname $0`;pwd) echo "export SWHOME=$SWHOME" echo "" echo "[1] make EPON" echo "[2] make XGEPON" echo "[0] make clean" read -p "Select Product Type NO.:" ProductType # 1表明epon,2表明xgepon,3代碼clean if [ $ProductType -eq 1 ];then PRODUCT=EPON PRODUCT_TYPE=EPON elif [ $ProductType -eq 2 ];then PRODUCT=XGEPON PRODUCT_TYPE=XGEPON elif [ $ProductType -eq 0 ];then make clean echo "=============================" echo "Make Clean Successfully!!" echo "=============================" exit 0 else echo "Select Error!" exit 0 fi echo "You select make ${PRODUCT}" read LINE_READ < ${SWHOME}/products_config.h LINE_WRITE="#define PRODUCT_CLASS PRODUCTS_${PRODUCT}" # 生成.h文件,裏面#define 你的選擇 if [ "$LINE_READ" != "$LINE_WRITE" ] then echo -e "$LINE_WRITE" > ${SWHOME}/products_config.h fi function make_product(){ if make $1 then echo "=============================" echo "make ${PRODUCT} successfully!!" echo "=============================" else echo "=====================" echo "make ${PRODUCT} error!" echo "=====================" fi } sleep 1 if [ ${PRODUCT} == "EPON" ] then make_product "v=EPON" elif [ ${PRODUCT} == "XGEPON" ] then make_product "v=XGEPON" else echo "Select Error!" exit 0 fi
解釋:這個方法是一個簡單的區分不一樣設備去執行不一樣代碼段;還有一種在Makefile中定義宏的方法。bash
目的:我如今要區分兩個不一樣的設備,xgepon和epon,經過執行這個腳本的選項,你能夠生成一個文件ide
/products_config.h
這個文件裏會有你選擇的兩個宏的其中一個,對應你的選項的宏,你在要區分的文件中包含這個文件,#if就能夠。it