我必须在安装我的包之前执行一些必要的步骤,例如备份以前的数据存储快照。 为此,我使用如下的 %pre 脚本。
%pre
#!/bin/sh
--------
--------
stamp=`date +%Y%m%d%H%M%S`
echo ${stamp}
-------------
-------------
输出如下:20161103123325OURCE 它正在打印一些随机字符和日期。 “OURCE”不存在于我的规范文件中的任何位置。
相同的脚本独立运行时完美无缺。平台为CentOS7。
最佳答案
rpmbuild 知道一整套宏。显然某个宏被定义为:
%S = %SOURCE
我没能找到告诉 rpmbuild 不要扩展那个宏的东西;但有一种方法可以诱使他不这样做。我知道这是一个小的解决方法,但这是我能想到的最好的方法:
stamp=$(date '+%Y%m%d%H%M%''S')
- 请注意,我用推荐的
$()
调用替换了反引号 - 我只是插入了两个 '' 来将字符串分成两部分;这避免了宏替换。
关于linux - date 命令在使用内部 rpm 规范文件时给出错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40396945/