Existem dois problemas com o comando sed :
- as variáveis
$ae$bnão são citadas, o que faz com que o shell passe suas partes parasedcomo vários parâmetros e - o delimitador da substituição,
"/", também é encontrado nos valores de$ae$b.
sed aceita outros delimitadores, como vírgula e porcentagem. Você está usando vírgula, mas o percentual não é usado. Se você revisou o script para
#!/bin/bash
a="* * * * * /home/server/scripts/check.sh"
b="0 06,18 * * * /home/server/scripts/checks2.sh"
sudo sed -i '28s%^%'"$b"'\n%' /var/spool/cron/crontabs/root
sudo sed -i '28s%^%'"$a"'\n%' /var/spool/cron/crontabs/root
exit
ou até mesmo
#!/bin/bash
a="* * * * * /home/server/scripts/check.sh"
b="0 06,18 * * * /home/server/scripts/checks2.sh"
sudo sed -i "28s%^%$b\n%" /var/spool/cron/crontabs/root
sudo sed -i "28s%^%$a\n%" /var/spool/cron/crontabs/root
exit
isso resolveria os dois problemas.