我最近下载了yEd 图形编辑器安装程序shell脚本,大小57M
当检查该脚本时
头脚本
root@home-pc:/usr/local/src# head yEd-3.11.1_32-bit_setup.sh
#!/bin/sh
# Uncomment the following line to override the JVM search sequence
# INSTALL4J_JAVA_HOME_OVERRIDE=
# Uncomment the following line to add additional VM parameters
# INSTALL4J_ADD_VM_PARAMS=
INSTALL4J_JAVA_PREFIX=""
GREP_OPTIONS=""
尾部脚本
root@home-pc:/usr/local/src# tail yEd-3.11.1_32-bit_setup.sh
��D�r�B��|�QO���W~��
_l�Tނ�t:M�Z�*��Ѵ��'�����(�\�A^��[��e�|����K+�<ѡ)��k
�l������3$+
`�cF���b\]��14�'qA�)�F�Pg��l���)�x{��A�Qك�Mf`^9e���C5�-���K&K��n�]��v�7�����]�wS�)~��?`�ߴ=����ں.AE�u����v�]�������
>1�f�\8w�+�mw�������6M��2��½���8g�M���Ǵ�^ͪ�A^�fKm*�6Yb
u�8B~! ��Ue����'����
�
�B����`1���8�!$-!�k�2O�u����Į��%�<8@�������)���-�5a��^h����[�v�x j��/~�3��
�u�b�l��.jx3W��n����>���.���
�
���d�Ox�*~*~*~*~*~�*��*��*����������������������������������������������������{ے
那么请您帮我解决以下问题:
- 为什么这个 shell 脚本有类似二进制的内容?
- 这个内容有什么用?
- 如果它有用那么我该如何实现呢?
答案1
它很可能是一个独立的可执行文件。可执行文件、目录结构等都作为二进制 blob 包含在这个单个文件中。有几种工具可以帮助创建自包含的可执行文件,例如这个。
这是一个可以执行此操作的此类应用程序的示例,makeself - 在 Unix 上制作可自解压的档案。
还有其他一些内容在互联网上流传。搜索“self containsexecutablelinux”,你就会找到它们。另请查看其他 U&L 问答,标题为:如何制作 Linux 应用程序(全合一)安装程序?对于其他方法。