Corrigindo Permissões
Tenho certeza de que o script não é executável. Para isso, você precisa definir o sinalizador de executável para o usuário atual executando:
chmod u+x /root/test.sh
Então você deve poder executá-lo como:
cd /root
./test.sh
Ou seja, se você estiver executando atualmente como root (verifique com whoami
).
Se você quiser que o script seja executável por outro usuário no sistema, ele precisa ser chmod og+x
("outros e grupo exeturável"), mas isso não funcionará se o script em si for salvo em /root
, que não é legível por outros usuários além do próprio root.
Corrigindo erros de copiar e colar
Parece que, da sua mensagem de erro /bin/bash^M
, você tem uma linha final do Windows CRLF ( \r\n
) , que deve ser apenas uma nova linha do Linux ( \n
).
Para remover isso, você pode executar o seguinte no arquivo:
sed -i 's/\r//' test.sh
Ou isto:
dos2unix test.sh