在安装包之前,我必须执行一些必要的步骤,例如备份以前的数据存储快照。
为此,我使用了一个%pre脚本,如下所示。

%pre
#!/bin/sh
--------
--------
stamp=`date +%Y%m%d%H%M%S`
echo ${stamp}
-------------
-------------

输出如下:20161103123325源
它正在打印一些随机字符和日期。”source“在我的spec文件中不存在。
同一个脚本作为独立脚本工作得很好。站台是7号。

最佳答案

rpmbuild知道一整套宏。显然,某个宏的定义是:

%S = %SOURCE

我没有找到告诉rpmbuild不要扩展宏的东西;但是有一种方法可以欺骗他不要这样做。我知道这是个小办法,但这是我能想到的最好的办法:
stamp=$(date '+%Y%m%d%H%M%''S')

注意,我用建议的$()调用替换了backticks
我只插入了两个“”将字符串分成两部分;这样可以避免宏替换。

10-06 07:57