تحويل عشري إلى عشري في جعل النص ؟
-
07-07-2019 - |
سؤال
A جعل السيناريو هو محاولة تعيين متغير على النحو التالي:
VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )
حيث VER_HEX
يحدث أن يكون لها قيمة 0a
.
بيرل يبدو أن أعتقد أن VER_HEX هو صفر ، مما يعني أن المتغير ليس مجموعة (ولكن هو, وفقا التصحيح صدى في makefile).
لا تجعل يكون أبسط طريقة لتحويل القواعد ؟
إذا كان الأمر كذلك ، ما هو إصدار جعل هو المطلوب ؟
تحديث:هذا هو جنو Makefile.الاحتجاج بيرل مفقود كلمة shell
داخل $( )
وكذلك يحتمل وجود قضايا الهروب مع انقر نقرا مزدوجا الاقتباس.
المحلول
VER_DEC=$(shell printf "%d" 0x$(VER_HEX))
إذا كنت تتحدث عن Makefile
.لأن لا تبدو مثل Makefile
لي أكثر مثل قذيفة.(أعتقد $(shell )
غنو التمديد ، ولكن معظم الوقت يمكنك استبدال بأمان مع backticks).
لا تنتمي إلى StackOverflow