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?!