【发布时间】:2018-01-15 04:28:57
【问题描述】:
假设我有位掩码1000000000。我想将其转换为等效的十六进制数,即0x200(具体来说,我只想要200 部分,但这很容易处理)
我知道我可以用 Python 或使用各种 bash 特性和函数来做到这一点。例子:
python -c "print format(0b1000000000, 'x')"
200
printf '%x\n' "$((2#1000000000))"
200
echo 'ibase=2;obase=10000;1000000000'|bc
200
但是,我只想使用 sh 中可用的函数(即 Shell,而不是 Bash)来执行此操作。更具体地说,我希望它与sh 一起工作在我正在组合的initrd 图像中。 AFAIK,以上示例均不适用于 initramfs / busybox 上下文。
【问题讨论】:
-
所以
awk解决方案对您不可用?我几乎可以肯定您将不得不调用外部工具来在sh中进行此转换,特别是如果您正在谈论busyboxsh。祝你好运。 -
是的,我说的是
busyboxsh。我可以试试awk。在这种情况下,转换会是什么样子?谢谢:-)
标签: linux shell binary hex initrd