我有一个spring boot应用程序,一开始是bash loader。当我解压缩它时,开始的脚本会丢失。我需要它来重新组装。因此,想法是使用head -c
将其拆分。但是我不知道如何有效地确定字节位置。 less
告诉我打开zip时脚本的字节数,但是我想使其自动化。是否可以用(un)zip
确定它?还是有另一种简单的方法?
我想到了确定exit 0
的结束位置。在我当前的应用中,这是8720。使用
echo 'ibase=16;obase=A;'$(xxd nevisadmin-app.jar | grep -m 1 "exit 0" | awk -F: '{print $1}') | bc
我得到8704(因为它在该行的末尾),但这非常脆弱,因为如果xxd
输出不在同一行中,它将失败。
000021f0 ... bla bla ex
00002200 ... it 0 binarystartshere
谢谢
答案 0 :(得分:0)
似乎,搜索exit 0
是确定spring boot脚本结束的可靠方法。
解压缩脚本将像这样”:
head -n $(grep -a -n "exit 0" springboot-app.jar | awk -F: '{print $1}') springboot-app.jar > startscript.sh
因此,它不能确定长度,但这与原始问题无关。
如果有人查询了这个问题,答案将是将输出粘贴到wc -c
而不是将输出重定向到文件。