Este é um “loop for” válido no bash?

0

Estou aprendendo sobre o loop for em bash , encontrei exemplos como os seguintes on-line:

for i in 1 2 3 4 5
do
    echo $i
done

Substitui o 1 2 3 4 5 por muitas "coisas" (números, strings, variáveis, etc.):

myVar="!!"
myVar2="Bye"
for i in 3 15 1 32 6 "Hello World $myVar" 'Hello World in single quotes' Hi $myVar2 $(ls)
do
    echo $i
done

Quando executo o script para o código acima, ele funcionou como esperado. Mas é de alguma forma inválido misturar todas essas "coisas"?

    
por user267365 25.12.2017 / 05:05

1 resposta

3

Desde que a lista de parâmetros que você alimenta ao loop seja (ou possa ser expandida pelo shell em) strings legítimas, em outras palavras, você obtém a sintaxe para qualquer expansão de shell correta, então não há realmente nenhum limite, nada vai.

Depois de expandir a lista de parâmetros, o bash apenas os alimenta no loop e permite que o código no loop seja executado.

Não é uma boa prática fazer isso e dificultar seu código, mas não é "inválido".

    
por 25.12.2017 / 05:39

Tags