Pokud je pro vás 33% ztráta kompresního poměru přijatelná, můžete uložit komprimovaná data kódovaná base64:
me$mybox$ FOO=$(echo "Hello world" | gzip | base64 -w0) # compressed, base64 encoded data
me$mybox$ echo $FOO | base64 -d | gunzip # use base64 decoded, uncompressed data
Hello world
Bude to fungovat, ale každé 3 (komprimované) bajty budou uloženy ve 4 bajtech textu.
Když to uděláte:
hey=$(echo "hello world" | gzip -cf)
V proměnné hey
nemáte stejné bajty jako v /tmp/myfile
vytvořil:
echo "hello world" | gzip -cf > /tmp/myfile
Dostanete chybu „gzip:stdin je vícedílný soubor gzip – není podporován“ jednoduše proto, že máte poškozená komprimovaná data, která nelze dekomprimovat.
VAR=$(...)
konstrukce je určena pro práci s textem. To je důvod, proč například získáte extra zadní trim.