Existem dois problemas com o comando sed
:
- as variáveis
$a
e$b
não são citadas, o que faz com que o shell passe suas partes parased
como vários parâmetros e - o delimitador da substituição,
"/"
, também é encontrado nos valores de$a
e$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.