Десятичное шестнадцатеричное преобразование, работающее в Linux, но не в Unix

Я хочу преобразовать десятичное число в шестнадцатеричное число. Я использовал команду:

printf '%X\n' 053698180 

Эта команда отлично работает на сервере Linux. Но бросая ниже ошибку при попытке в UNIX:

 printf: Error converting 053698180 053698180 

Что может быть здесь?

Кроме того, какова наименьшая возможная коррекция, которая может быть сделана здесь, чтобы заставить ее работать как в UNIX, так и в Linux?

One Solution collect form web for “Десятичное шестнадцатеричное преобразование, работающее в Linux, но не в Unix”

Вы не сказали нам, что такое ваша Unix и ваша оболочка. Вероятно, проблема заключается в ведущем 0 который инструктирует printf интерпретировать число как восьмеричное число, которого оно не может быть (из-за 8 и 9 цифр).

Просто удалите ведущий 0 .

  • Обработка аргументов в указанном порядке в / usr / bin / printf или Bash printf
  • Где найти ссылку на форматирование printf?
  • Формат ширины столбца с Printf
  • Предотвращение наручных цветов
  • Найдите новый файл и посмотрите, старше ли файл «X»
  • Почему эта первая запятая в этом массиве printf?
  • Как нарисовать линию Divider с названием названия перед отображением вывода
  • Довольно печатать в VIM?
  • Как добавить несколько строк с переменными в конец сценария bash?
  • Как использовать printf и% s при наличии цветовых кодов?
  • Порядок печати?
  • Linux и Unix - лучшая ОС в мире.