2016-11-03 10 views
0

Je dois effectuer quelques étapes nécessaires avant d'installer mon paquet, par exemple reprendre le cliché de banque de données précédent. Pour cela j'utilise un% pre script comme suit.La commande date donne une sortie erronée lors de l'utilisation du fichier de spécification RPM.

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

La sortie est la suivante: 20161103123325OURCE Il imprime des caractères aléatoires ainsi que la date. "OURCE" n'est présent nulle part dans mon fichier de spécifications.

Le même script fonctionne parfaitement de manière autonome. La plate-forme est CentOS7.

Répondre

2

rpmbuild connaît un ensemble de macros. Apparemment, une certaine macro est définie comme:

%S = %SOURCE 

Je n'ai pas réussi à trouver quelque chose qui indique rpmbuild ne pas étendre cette macro; mais il y a moyen de l'empêcher de le faire. Je sais que c'est un peu contourner ce problème, mais il est le meilleur que je pouvais venir avec:

stamp=$(date '+%Y%m%d%H%M%''S') 
  • Notez que j'ai remplacé les accents graves avec la conseillé $() invocation
  • Je viens inséré deux « » pour diviser le chaîne en deux parties; cela évite le remplacement de la macro.