Convertir un hex en décimal dans un script?
-
07-07-2019 - |
Question
Un script make tente de définir une variable comme suit:
VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )
où VER_HEX
a la valeur 0a
.
Perl semble penser que VER_HEX est égal à zéro, ce qui implique que la variable n'est pas définie (mais elle est , selon un écho de débogage dans le fichier makefile).
Est-ce que make a un moyen plus simple de convertir des bases?
Si oui, quelle version de make est requise?
UPDATE: Ceci est un Makefile GNU. Le mot shell
à l'intérieur de $ ()
n'apparaît pas dans l'appel de perl, ainsi que des problèmes éventuels liés aux guillemets doubles.
La solution
VER_DEC=$(shell printf "%d" 0x$(VER_HEX))
si vous parlez de Makefile
. Parce que vous ne ressemblez pas à Makefile
pour moi, mais plutôt à un shell. (Je pense que $ (shell)
est une extension GNU, mais la plupart du temps, vous pouvez le remplacer en toute sécurité par des backticks).