Ich habe hier ein kleines Puzzle für die Bash-Scripting-Experten ... Ich habe ein Bash-Skript, das eine kleine (80 Byte) Binärdatei erstellen muss, wenn es ausgeführt wird. Der Inhalt der Datei muss im Skript selbst enthalten sein (d. H. Ich möchte die Datei nicht zusammen mit dem Skript packen).Wie kann ein Bash-Skript eine Binärdatei schreiben, ohne den Uudecode zu benutzen?
Mein Skript zur Zeit tut es wie folgt aus:
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
... nach den oben läuft, ich meine Datei /tmp/dummy.wav haben. Aber ich habe gerade herausgefunden, dass auf dem Computer, auf dem dieses Skript ausgeführt werden soll, kein Uudecode installiert ist (und ich darf ihn nicht installieren), also muss ich eine andere Möglichkeit finden, diese Datei zu erstellen. Irgendwelche Ideen?
Sie hier das gleiche doc-Funktion mit der Bash-Version mit den entkam Hex-Werte und vermeiden alle diese Echos und '>> können' hängt an. –
Eine Version hinzugefügt, die ein here-doc und kein '>>' verwendet. –