Se você estiver instalando apenas esse script pequeno, basta fazer isso manualmente. Você poderia usar um arquivo shar , mas isso parece um exagero.
Os maiores problemas que vejo são os primeiros: bash vai estar localizado em locais diferentes em sistemas diferentes, mas não há nada em seu script específico para Bash, então você pode alterar seu shebang para:
#!/bin/sh
ou
#!/usr/bin/env bash
para portabilidade.
Em segundo lugar, você precisará escolher um local para o seu script. Parece-me que /usr/local/bin seria tão bom quanto qualquer outro.
Em terceiro lugar, você precisará chown para definir a propriedade e chmod para definir as permissões.
Em quarto lugar, você deve escolher locais melhores para seus arquivos de saída. Se eles são apenas para uso temporário, eles devem ser criados em /tmp , em vez do diretório raiz em que você tem suid.old e suid.new , ou o diretório atual em que você tem newchanges . Caso contrário, em algum lugar em var pode estar onde você deseja colocar dados mais persistentes. Talvez /var/local/suid .
Em quinto lugar, o exit impede que o segundo if seja avaliado para que nenhum email seja enviado.
Em sexto lugar, você pode querer mv suid.new suid.old em algum momento, então na próxima vez que você fizer o seu teste, ele estará comparando os dados salvos mais recentes.
Em sétimo lugar, seu último comando de email deve ter o arquivo canalizado ou redirecionado. Não funcionará como um argumento. E os dois comandos de e-mail devem ser trocados, então você não está enviando um arquivo por e-mail quando está vazio e está enviando um e-mail quando não está.
if [ -s "/newchanges" ]
then
mail -s "No changes have occurred" [email protected] < /path/to/newchanges
else
mail -s "changes have occurred" [email protected]
fi