1
for num in {3758145536..3758149632..4}
do
    echo "obase=16; $num" | hexnum
    peek -lt $hexnum > "/luascript/dumpfileA"
done

私がやりたいのは、address0xe000000から0xe0001000まで反復することです。peekを使用してこれらのセクションメモリをピークし、結果をファイルに書き込みます。

だから私はDeceimalを使ってインクリメントジョブを実行します。次に、16進数に変換します。

たぶん、16進数で直接インクリメントできますか?

しかし、これは機能していません。助けが必要ですありがとうございます!

4

3 に答える 3

4

(bashを使用していると仮定します)。

一般に、bashでは基数10にのみ数値リテラルを入力できます。算術コンテキスト(((...))たとえば、内部)で他の基数を使用できますが、基数10の表現で表示されます。ただし、組み込みを使用しprintfて、16進表現にすばやく変換できます。

for (( num=0xe0000000; num <= 0xe0001000; num+=4 )); do
    peek -lt $( printf "%x" $num ) >> /luascript/dumpfileA
done
于 2012-08-23T22:34:00.190 に答える
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

を削除しheadecho出力に満足したら引用符を削除します。

于 2012-08-23T22:46:41.647 に答える
0

とても簡単!これを使って:

bc <<< "obase = 16 ; $(seq 0 65536)"
于 2014-10-30T12:04:27.853 に答える