执行你优化代码后提示line 53: \x${$(printf %08X $(($addr / 256)))[-8,-1]}\n: bad substitution
时间: 2024-03-01 11:54:39 浏览: 137
一个编译器优化引起的问题
抱歉,我的回答有误。`${...}`语法是不支持数组切片的,正确的做法是使用`cut`命令来截取字符串。修改后的代码如下:
```
addr=0x30000000
echo -n -e "\x$(printf %08X $(($addr / 256)) | cut -c 7-)\n"
```
`printf %08X $(($addr / 256))`输出的结果是一个8位十六进制数,然后通过管道`|`将结果传递给`cut`命令。`cut -c 7-`表示从第7个字符开始截取到字符串末尾。最后再在前面加上`\x`,就完成了转换。
阅读全文