#!/bin/sh
gzip -c
Isso seria suficiente.
$ mysqldump ... | ./script >out.gz
gzip -c
lerá dados não compactados em sua entrada padrão e gravará dados compactados em sua saída padrão.
A entrada padrão é fornecida pelo pipe e a saída padrão é redirecionada para um arquivo. A tubulação e o redirecionamento são atendidos pelo shell de chamada.
Um exemplo um pouco mais complexo que pegará uma expressão sed
na linha de comando e transformará a entrada de acordo com isso, ou apenas encaminhará os dados se nenhuma expressão for usada:
#!/bin/sh
if [ -n "$1" ]; then
sed -e "$1"
else
cat
fi
(aqui, usando sed -e ""
teria o mesmo efeito que cat
, mas eu queria um exemplo mais complexo)
$ utility | ./script "1,5d" >out
... excluiria as cinco primeiras linhas de saída de utility
.