我在这里为 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>
关于bash - bash 脚本如何在不使用 uudecode 的情况下写出二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3122254/