Se for Linux, ele configura UUDECODE para uma forma de chamar o comando uudecode
, se não, outro. Não é padrão, então como chamá-lo varia. Não é muito esperto, se você me perguntar.
A linha que inicia cat $0
faz o trabalho real. $0
é o nome do processo em execução, ou seja, do script atual. Mais uma vez, funcionará principalmente, mas pode ser enganado.
O conteúdo do script é canalizado para o script awk
, que copia todo o texto após DATA BEGINS HERE
para sua saída, que é canalizada para uudecode
(o comando configurado anteriormente). uudecode
pega o texto e faz um binário dele (o par uuencode
/ uudecode
onde usado para enviar binários como texto antes de HTTP e outros se tornou popular), o resultado é canalizado para o comando em '()', que primeiro muda para /usr/local/bin
e depois descompacta a entrada com tar
. O --unlink
primeiro exclui qualquer arquivo existente.
De onde vem isso?!