Comecei a trabalhar em scripts bash. Acabei de observar uma diferença entre executar uma linha de comando e executar os mesmos comandos, mas dentro de um script. Em particular, a linha de comando é:
for a in {2..10..2};do echo "My number is:$a";done
que produz a seguinte saída esperada:
My number is:2
My number is:4
My number is:6
My number is:8
My number is:10
Por outro lado, o roteiro test.sh
é o seguinte:
#!/bin/sh
for a in {2..10..2};do echo "My number is:$a";done
Por isso quando faço:
./test.sh
Eu recebo a seguinte saída:
My number is:{2..10..2}
Eu esperava que essas duas abordagens fossem equivalentes.
Por que essas duas abordagens são diferentes e como posso obter um uso adequado do loop/colchete para obter a mesma saída da linha de comando?