33 lines
933 B
Bash
Executable File
33 lines
933 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# 指定输入的bin文件名
|
|
input_bin="image_zip.bin"
|
|
|
|
# 指定输出的bin文件名和路径
|
|
output_bin="header.bin"
|
|
|
|
# 查找输入的bin文件并计算大小
|
|
bin_files=$(find . -type f -name "$input_bin")
|
|
|
|
# 检查是否找到bin文件
|
|
if [ -z "$bin_files" ]; then
|
|
echo "未找到指定的bin文件"
|
|
exit 1
|
|
fi
|
|
|
|
# 获取第一个匹配到的bin文件的大小
|
|
filesize=$(stat -c %s "$input_bin")
|
|
printf "aaa%08x\r\n" $filesize
|
|
# 将文件大小作为二进制数据写入输出bin文件的第52个字节位置
|
|
|
|
printf "%08x" ${filesize} > ${filesize_cal}.tmp
|
|
xxd -r -p -l 4 ${filesize_cal}.tmp ${filesize_cal}.bin.tmp
|
|
objcopy -I binary --reverse-bytes=4 "${filesize_cal}".bin.tmp "${filesize_cal}".bin.rev
|
|
|
|
dd conv=notrunc bs=1 seek=52 count=4 \
|
|
if="${filesize_cal}".bin.rev of="$output_bin" > /dev/null 2>&1;
|
|
|
|
cat header.bin image_zip.bin > header_image_zip.bin
|
|
echo "计算结果已存储到 $output_bin"
|
|
|