在安装我的软件包之前,我必须执行一些必要的步骤,比如备份以前的快照。为此,我使用了如下的%pre脚本。
%pre #!/bin/sh -------- -------- stamp=`date +%Y%m%d%H%M%S` echo ${stamp} ------------- -------------
字符串输出如下:20161103123325 OURCE它正在打印一些随机字符沿着日期。“OURCE”在我的spec文件中不存在。同样的脚本可以完美地作为独立的。平台是CentOS 7。
oipij1gg1#
rpmbuild知道一整套宏。显然,某个宏定义为:
%S = %SOURCE
字符串我没有找到告诉rpmbuild不要扩展那个宏的东西;但是有一种方法可以欺骗他不要这样做。我知道这是一个小小的变通方法,但这是我能想到的最好的方法:
stamp=$(date '+%Y%m%d%H%M%''S')
型
$()
amrnrhlw2#
如果您在日期命令中使用第二个百分比符号'%%'转义百分比'%',如以下链接所述,则应更正您在输出中看到的将%S展开为“OURCE”的行为。
stamp=`date +%%Y%%m%%d%%H%%M%%S`
字符串请参见此处的“编写宏”一节http://rpm.org/user_doc/macros.html
sg2wtvxw3#
还有另一种方法可以绕过这种RPM行为。您可以使用'%T'日期格式而不是'%H%M%S',如下所示:
stamp=$(date +'%Y%m%d%T')
字符串
3条答案
按热度按时间oipij1gg1#
rpmbuild知道一整套宏。显然,某个宏定义为:
字符串
我没有找到告诉rpmbuild不要扩展那个宏的东西;但是有一种方法可以欺骗他不要这样做。我知道这是一个小小的变通方法,但这是我能想到的最好的方法:
型
$()
调用amrnrhlw2#
如果您在日期命令中使用第二个百分比符号'%%'转义百分比'%',如以下链接所述,则应更正您在输出中看到的将%S展开为“OURCE”的行为。
字符串
请参见此处的“编写宏”一节http://rpm.org/user_doc/macros.html
sg2wtvxw3#
还有另一种方法可以绕过这种RPM行为。您可以使用'%T'日期格式而不是'%H%M%S',如下所示:
字符串