基本上,这是一个shell脚本,位于某种压缩存档(例如tar存档)之前。您可以对自己使用
tailor
sed命令(
$0Bourne
shell中的变量)来剥离前面的shell脚本,并将其余的脚本传递给您的非归档器。
例如,将以下脚本创建为
self-extracting:
#!/bin/sh -esed -e '1,/^exit$/d' "$0" | tar xzf - && ./project/Setupexit
sed上面的命令从文件的第一行到以“ exit”开头的第一行删除所有行,然后将其余的行继续通过。如果紧接在“
exit”行之后开始的是tar文件,则
tar命令将提取该文件。如果成功,则将执行
./project/Setup文件(可能是从tarball中提取的)。
然后:
mkdir projectecho "#!/bin/sh" > project/Setupecho "echo This is the setup script!" >> project/Setupchmod +x project/Setuptar czf - project >> self-extracting
现在,如果您摆脱了原来的
project目录,则可以运行
self-extracting,它将解压缩该tar文件并运行安装脚本。



