2016-11-03 3 views
0

Ich muss einige notwendige Schritte vor der Installation meines Pakets, wie die Sicherung von früheren Datenspeicher Snapshot. Zu diesem Zweck verwende ich ein% Pre-Skript wie folgt.Datum Befehl gibt falsche Ausgabe während der Verwendung von innerhalb der rpm Spec-Datei

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

Die Ausgabe ist wie folgt: 20161103123325OURCE Es druckt einige zufällige Zeichen zusammen mit Datum. "OURCE" ist nirgendwo in meiner Spezifikationsdatei vorhanden.

Das gleiche Skript funktioniert perfekt als Standalone. Die Plattform ist CentOS7.

Antwort

2

rpmbuild kennt eine ganze Reihe von Makros. Offenbar ein bestimmtes Makro ist definiert als:

%S = %SOURCE 

Ich habe es nicht geschafft, etwas zu finden, die nicht rpmbuild sagt, dass Makro zu erweitern; aber es gibt einen Weg, ihn dazu zu bringen, es nicht zu tun. Ich weiß, das ist eine wenig Abhilfe, aber es ist das Beste, was ich tun konnte:

stamp=$(date '+%Y%m%d%H%M%''S') 
  • beachten Sie, dass ich die Backticks mit dem unverbindlichen $() Aufruf ersetzt
  • ich zwei gerade eingefügt ‚‘ spalten der Schnur in zwei Teilen; Dies vermeidet einen Makroersatz.
Verwandte Themen