快速创建c文件脚本



#/bin/bash
#***************************************************************************
#   第一个参数为文件名
#  
#
###########################################################################
typeset -u HEAD
HEAD=$1_H

#遍历参数
for param in $@
do
	case "$param" in
		"DEBUG" )
		DEBUG=1
		echo "DEBUG=$DEBUG"
		;;
		
		"BOOL" )
		BOOL=1
		echo "BOOL=$BOOL"
		;;
		
		* )
		echo "unknown $param"
		;;
	esac
done
#***************************************************************************
#产生.h文件
###########################################################################
echo "/******************************************************************************
File Name     : $1.h
Description   : 
******************************************************************************/
#ifndef $HEAD
#define $HEAD

#ifdef __cplusplus
#if __cplusplus
extern \"C\" {
#endif /* __cpluscplus */
#endif /* __cpluscplus */
" >  $1.h


#***************************************************************************
#调试宏定义
###########################################################################
if [ $DEBUG ] ; then
echo "

#define DEBUG
#ifndef RT_PRINT
#define RT_PRINT printf
#define RT_DBG_HEADER_FORMAT \"File[%s] Func[%s] Line[%d] Info: \"
#define RT_DBG_HEADER_ARGS  __FILE__, __FUNCTION__, __LINE__

#define RT_DBG_NONE        \"\\033[0m\"
#define RT_DBG_BLACK       \"\\033[0;30m\"
#define RT_DBG_DARK_GRAY   \"\\033[1;30m\"
#define RT_DBG_BLUE        \"\\033[0;34m\"
#define RT_DBG_LIGHT_BLUE  \"\\033[1;34m\"
#define RT_DBG_GREEN       \"\\033[0;32m\"
#define RT_DBG_LIGHT_GREEN \"\\033[1;32m\"
#define RT_DBG_CYAN        \"\\033[0;36m\"
#define RT_DBG_LIGHT_CYAN  \"\\033[1;36m\"
#define RT_DBG_RED         \"\\033[0;31m\"
#define RT_DBG_LIGHT_RED   \"\\033[1;31m\"
#define RT_DBG_PURPLE      \"\\033[0;35m\"
#define RT_DBG_LIGHT_PURPLE \"\\033[1;35m\"
#define RT_DBG_BROWN       \"\\033[0;33m\"
#define RT_DBG_YELLOW      \"\\033[1;33m\"
#define RT_DBG_LIGHT_GRAY  \"\\033[0;37m\"
#define RT_DBG_WHITE       \"\\033[1;37m\"

#ifdef DEBUG
#define RT_INFO_PRINT( fmt,...) \\
     do\\
     {\\
          RT_PRINT(RT_DBG_GREEN);\\
          RT_PRINT(RT_DBG_HEADER_FORMAT, RT_DBG_HEADER_ARGS);\\
          RT_PRINT(fmt, ##__VA_ARGS__);\\
          RT_PRINT(RT_DBG_NONE);\\
     }while (0)
#else
#define RT_INFO_PRINT( fmt,...)
#endif

#define RT_ERR_PRINT( fmt,...) \\
     do\\
     {\\
          RT_PRINT(RT_DBG_RED);\\
          RT_PRINT(RT_DBG_HEADER_FORMAT, RT_DBG_HEADER_ARGS);\\
          RT_PRINT(fmt, ##__VA_ARGS__);\\
          RT_PRINT(RT_DBG_NONE);\\
     }while (0)
#endif
" >> $1.h
fi

if [ $BOOL ] ; then
echo "
typedef enum {
    HI_FALSE    = 0,
    HI_TRUE     = 1
} RT_BOOL;
"  >>  $1.h
fi

echo "
#ifndef NULL
#define NULL                0L
#endif
#define HI_NULL             0L
#define HI_NULL_PTR         0L
" >>  $1.h



echo "
#ifdef __cplusplus
#if __cplusplus
}
#endif /* __cpluscplus */
#endif /* __cpluscplus */

#endif/*$HEAD*/
" >>  $1.h


##########
#产生.c文件
#######
echo "
#include \"$1.h\"
" >  $1.c


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值