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