Estou tentando executar este script bash simples, mas estou recebendo um erro de sintaxe. Eu segui esta documentação simples aqui https://www.cyberciti.biz/faq/bash-for-loop/ mas sem sorte. Não tenho certeza do que estou fazendo de errado?
#!/bin/bash
for i in 1 2 3 4 5
do
echo "Count $i"
done;
erro:
setup.sh: 3: setup.sh: Syntax error: word unexpected (expecting "do")
Estou executando esse script do meu Windows Subsystem Linux (WSL) aqui.
Seu arquivo de script é um arquivo de texto do DOS. A carruagem extra retorna ao final de cada linha confunde
bash
(vêdo\r
em vez dedo
).Converta-o em um arquivo de texto Unix usando uma ferramenta como
dos2unix
, ou certifique-se de que seu editor o salve como um arquivo de texto Unix.Acabei de executar o mesmo script na minha máquina centos, que funciona arquivo. Conforme sugerido por Kusalananda, converta o arquivo de script de dos para unix. instale o pacote dos2unix se você ainda não o tiver instalado. Então você pode usar o comando abaixo para converter $ dos2unix (nome do arquivo)
Uma maneira melhor de fazer um loop seria:
Dessa forma, você não precisa especificar todos esses números. Então, o que você faria se tivesse que percorrer 100 números usando seu método?