![](/img/trans.png)
[英]Error while creating rpm package using rpmbuild from spec file
[英]date command is giving erroneous output while using inside rpm spec file
安裝軟件包之前,我必須執行一些必要的步驟,例如備份以前的數據存儲快照。 為此,我使用%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')
$()
調用替換了反引號 如果您在日期命令中使用第二個百分號“ %%”對百分號“%”進行了轉義(如以下鏈接所述),則可以通過將%S擴展為“ OURCE”來更正您所看到的行為在您的輸出中。
stamp=`date +%%Y%%m%%d%%H%%M%%S`
請參閱http://rpm.org/user_doc/macros.html中的 “編寫宏”部分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.