for num in {3758145536..3758149632..4}
do
echo "obase=16; $num" | hexnum
peek -lt $hexnum > "/luascript/dumpfileA"
done
我想要做的是,从address0xe000000迭代到0xe0001000 使用peek来查看这些部分内存并将结果写入文件。
所以我使用Deceimal做增量工作。然后转换为十六进制。
也许,我可以直接增加十六进制吗?
但这不起作用。 需要帮忙 谢谢!
答案 0 :(得分:4)
(我假设您正在使用bash)。
通常,bash只允许您在基数10中输入数字文字。您可以在算术上下文中使用其他基数(例如,在((...))
内),但它将以其基数10表示形式显示。但是,您可以使用printf
内置快速转换为十六进制表示。
for (( num=0xe0000000; num <= 0xe0001000; num+=4 )); do
peek -lt $( printf "%x" $num ) >> /luascript/dumpfileA
done
答案 1 :(得分:0)
如果您使用的是zsh
,则可以执行以下操作(请注意c_bases
需要设置为0x
前面的$num
}:
setopt c_bases
typeset -i 16 num
for num in $( seq $((0xe000c000)) 4 $((0xe000d000)) ); do
echo "peek -lt $num > /luascript/dumpfileA"
done | head
输出:
peek -lt 0xE000C000 > /luascript/dumpfileA
peek -lt 0xE000C004 > /luascript/dumpfileA
peek -lt 0xE000C008 > /luascript/dumpfileA
peek -lt 0xE000C00C > /luascript/dumpfileA
peek -lt 0xE000C010 > /luascript/dumpfileA
peek -lt 0xE000C014 > /luascript/dumpfileA
peek -lt 0xE000C018 > /luascript/dumpfileA
peek -lt 0xE000C01C > /luascript/dumpfileA
peek -lt 0xE000C020 > /luascript/dumpfileA
peek -lt 0xE000C024 > /luascript/dumpfileA
当您对输出感到满意时,请移除head
,echo
和引文。
答案 2 :(得分:0)
这么简单!使用此:
bc <<< "obase = 16 ; $(seq 0 65536)"