RPM命令大全
日期:2007年8月7日 作者: 查看:[大字体 中字体 小字体]-
如仅有一个选项的宏定义:
%define xxx(p:Z) echo %{-p:%{-p*}} %{-Z}
3. 宏的使用
宏的使用格式为:
% [opt1] [opt2]... [arg1] [arg2]...
或
%{} [opt1] [opt2]... [arg1] [arg2]...
注: []所括为可选项;为所应用的宏名,宏名可以用{}括住;opt1,opt2...为选项,均须以减号(-)开头,并且如果选项需要参数,则必须提供一个选项参数;arg1,arg2...则为宏的参数。
如上面定义的xxx宏,可这样使用:
%xxx -p zhsoft hello world<
br>
例子中,xxx宏使用一个选项-p,zhsoft为-p选项的参数,还有两个宏的参数hello和world。
注意: 宏使用时最好多换一行(即宏下面空一行),因为宏在扩展后并不换行,这样如果不多换行,则下面一行若有内容的话,宏扩展后的内容将和下面一行的内容合并在一起,极容易出现错误。这也是笔者发现RPM宏的问题之一。还有一个问题,如果注释行上存在宏,则这个宏也将扩展,错矣!因为注释本来就是要忽略掉的,有宏也不必再扩展了。这两个问题都需要引起RPM开发者的注意,并切实加以解决。
4. 宏体专用的宏
宏体中可使用如下专用的宏:(类似SHELL形式的宏)
1) %0 : 表示所在宏的宏名;
2) %* : 表示宏的所有参数;
3) %# : 表示宏的参数个数;
4) %{-f} : 表示如果宏使用了-f选项,则它表示-f及其选项参数;
5) %{-f*} : 表示如果宏使用了-f选项,则它表示-f所带的参数;
6) %{-f:X} : 表示如果宏使用了-f选项,则它表示X;
7) %{!-f:Y} : 表示如果宏没有使用-f选项,则它表示Y;
8) %1,%2,... : 表示宏的参数1,参数2...
如,上例中xxx宏执行时,若宏体中有上述专用的宏,则专用宏将会扩展为:
1) %0扩展为xxx;
2) %*扩展为hello world;
3) %#扩展为2;
4) %{-p}扩展为-p zhsoft;
5) %{-p*}扩展为zhsoft;
6) %{-p:good}扩展为good;
7) %{!-Z:bad}扩展为bad; (因为xxx宏未使用-Z选项)
8) %1为hello,%2为world,没有其它参数。
5. 系统内置的宏
系统内置的宏可分如下三类:
5.1 定义类
1) %define ... : 定义一个宏;(原来,%define也是一个宏啊)
2) %undefine ... : 取消一个宏;(宏取消后,此语句下面的描述文件就不能再使用这个宏了,即使使用,该宏也不会被扩展了)
5.2 调试类
1) %trace : 打印宏扩展前后的调试信息;
2) %dump : 打印活动的宏(宏名及宏体);
3) %{echo:...} : 打印...到标准错误设备;
4) %{warn:...} : 打印...到标准错误设备;
5) %{error:...} : 打印...到标准错误设备,并且返回BADSPEC值;
5.3 特殊类
这类宏的默认值通常放在/usr/lib/rpm/macros文件中,用户通过编辑自己主目录(HOME)下的.rpmmacros文件(~/.rpmmacros),可重定义这类宏,改变其默认值,以供RPM在软件包制作,安装及查询时使用自己的定义。
这类宏的定义格式为:
%
注: 为宏名,为宏体。
1) %packager,%vendor,%distribution :
这三个宏用于定义描述文件中Packager,Vendor,Distribution三个可选域的默认的域值,即如果这三个域中有哪个未在描述文件中定义,且其相对应的宏有定义,则RPM会采用其对应的宏的宏体。 - 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] 下一页
-
- RPM命令大全 相关文章:
- ·春节新年新春对联大全
- ·香港三级片名单大全 (包括演员名单)
- ·经典歇后语大全
- ·感人情书大全-情书经典
- ·路由器安全设置详解
- ·英语格言大全
- ·古代情诗:伤感浪漫悲伤情诗大全
- ·CPU型号大全总结
- ·幻世录2魔神战争 完全物品列表 - 游戏攻略
- ·男女生英文名大全-给自己起个好名字
- RPM命令大全 相关软件
- ·瑞星杀毒软件 2007 V19.32.12 完全免费版
- ·火影忍者-忍术全开
- ·Kaspersky(卡巴斯基) KIS 安全套装 V6.0.2.621 MP2 简体中文正式免激活版
- ·中国法律法规大全(电子版) V3.3
- ·生活宝典系列之——家常美食菜谱大全(完整版) V3.0.3
- ·全能音频转换通 V1.2
- ·全能格式转换(Konvertor) V3.45.1 汉化版
- ·魔法门英雄无敌3全集
- ·《暗黑破坏神2毁灭之王》v1.11地图全开工具EasyMap_v11
- ·《仙剑奇侠传2》全过程存档
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:mrtg的调试和使用
精品推荐
热点TOP10
- ·什么是MIS
- ·Linux操作系统源代码详细分析
- ·BIOS知识大全
- ·Linux学习手册
- ·Vi命令一览表
- ·linux知识大全
- ·Linux/Unix环境下的make命令详解
- ·LINUX 常见问题1000个详细解答
- ·Linux循序渐进(19):shell
- ·RPM命令大全
- ·Linux中QQ的配置
- ·Linux主要shell命令详解
- ·最新linux iso光盘下载点
- ·Linux发行版图标大全
- ·常见端口表汇总
- ·linux内核编译详解
- ·Linux From Scratch安装学习笔记
- ·万能声卡驱动(Alsa)的安装方法
- ·Linux下用pptp连接VPN服务器
- ·Bourne shell编程入门及脚本测试
特别推荐
- ·BIOS知识大全
- ·如何编写Linux设备驱动程序
- ·Linux管理工具介绍
- ·Linux操作系统源代码详细分析
- ·Linux下用pptp连接VPN服务器
- ·在linux7.1上安装jdk+tomcat+oracle9i笔记
- ·Linux学习手册
- ·学习Linux的八点忠告
- ·深入分析Linux防火墙
- ·UNIX系统后门的安放和日志的擦除
- ·揭开Expect的神秘面纱
- ·万能声卡驱动(Alsa)的安装方法
- ·长篇连载--arm linux演艺---序
- ·为CanonPIXMAiP1000喷墨打印机安装驱动程序
- ·详细讲解Linux系统下ADSL拨号上网方法
- ·使用ImageMagick 的提示与技巧
- ·轻松实现 Linux系统下互联网过滤功能
- ·Linux下一些故障现象以及解决的相关资源
- ·重安装gentoo 2005.1 for AMD64版经验
- ·Linux/Unix环境下的make命令详解
