Mam tutaj małą puzzler dla ekspertów od skryptów bash ... Mam skrypt bash, który musi utworzyć mały (80-bajtowy) plik binarny, gdy będzie działał. Zawartość pliku musi być zawarta w samym skrypcie (tzn. Nie chcę po prostu pakować pliku razem ze skryptem).W jaki sposób skrypt bash może zapisać plik binarny bez użycia uudecode?
Mój skrypt obecnie robi to tak:
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
... po powyższych tras, mam pliku /tmp/dummy.wav. Ale właśnie dowiedziałem się, że komputer, na którym uruchamiany jest ten skrypt, nie ma zainstalowanego uudecode (i nie mam uprawnień do jego instalacji), więc muszę znaleźć inny sposób na utworzenie tego pliku. Jakieś pomysły?
można użyć tego samego tutaj funkcję doc z wersją Bash ze zbiegłych wartości hex i uniknąć wszystkich tych echa i '' >> dołącza. –
Dodano wersję, używając tutaj-doc i bez '' '. –