我在这里为bash脚本专家提供了一个小难题。我有一个bash脚本,在运行时需要创建一个小的(80字节)二进制文件。文件的内容需要包含在脚本本身内(即,我不想只将文件与脚本打包在一起)。

我的脚本当前这样做是这样的:

echo 'begin-base64 644 dummy.wav' > /tmp/dummy.uu
echo 'UklGRkgAAABXQVZFZm10IBAAAAADAAEAAHcBAADcBQAEACAAZmFjdAQAAAAAAAAAUEVBSxAAAAAB' >> /tmp/dummy.uu
echo 'AAAAQDYlTAAAAAAAAAAAZGF0YQAAAAA=' >> /tmp/dummy.uu
echo '====' >> /tmp/dummy.uu
uudecode -o /tmp/dummy.wav /tmp/dummy.uu
rm /tmp/dummy.uu

...在上述运行之后,我有我的文件/tmp/dummy.wav。但是我刚刚发现要运行此脚本的计算机没有安装uudecode(并且不允许安装它),因此我需要寻找其他创建此文件的方法。有任何想法吗?

最佳答案

一些安装程序会执行以下操作:

#!/bin/bash
tail -n +4 $0 | tar xvzf -
exit
<tgz file appended here><newline>

10-01 09:52