Sua variável check
está completamente errada. Está atribuindo a string literal "proc/mdstat | grep md1"
a check
.
Para corrigir isso, use isso:
if grep -q -e 'md1:' -e 'md127:' /proc/mdstat; then
echo "MD1 is already here"
else
if echo yes | mdadm --create --verbose /dev/md1 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdd1 /dev/sde1 --spare-devices=1 /dev/sdf1; then
echo "MD1 was created"
else
echo "An error has occurred"
fi
fi
Algumas outras notas:
- O Bash não exige chaves para instruções de várias linhas, portanto, é mais fácil omiti-las. Você deve sempre garantir o recuo adequado, no entanto.
- A instrução
if
do Bash não exige uma construção[ .. ]
. Pode usar qualquer comando; se o comando sair com 0, é considerado verdadeiro, senão falso. - A sintaxe
<< EOF
é redundante, um simplesecho yes |
fará isso.