Visão geral para loop em scripts de shell

Para loop no Shell Scripting, digamos que, se quisermos executar uma tarefa ou operação repetidamente, podemos escrever o mesmo código nesses muitos números de vezes, o que é uma tarefa demorada e também não é eficiente. Para evitar esses tipos de cenários, podemos usar loops como for loop em uma linguagem de programação. Portanto, o loop for é usado para executar uma tarefa específica, como adição / multiplicação ou qualquer outra operação, durante um certo número de vezes, até que a condição de finalização seja atendida em qualquer sistema operacional. Não precisamos escrever o mesmo código repetidamente usando o loop for.

Sintaxe de loop for

A sintaxe do loop for no script de shell pode ser representada de diferentes maneiras, como abaixo:

1. Primeiro método de sintaxe

for var in list
do
command1
command2
done

No exemplo acima, temos palavras-chave predefinidas ou internas, como for, do, done e in. Considerando que list é uma lista de variáveis ​​ou uma lista de palavras ou uma lista de números e var é um nome de variável durante essa iteração. Se uma lista não for fornecida, o bash assumirá um parâmetro posicional que passamos no shell. No loop for acima, ele executará todos os comandos que existem entre do e done por n número de vezes em que n é o tamanho da lista. Por exemplo, se o tamanho da lista for 5 com números de 1 a 5, durante a primeira iteração 1 será armazenada em var e as operações em var serão executadas pelo corpo do loop for onde existem comandos.

2. Segundo método de sintaxe

for ( ( expr1; expr2; expr3 ))
do
command1
command2
….
done

Na sintaxe acima, se observarmos essa sintaxe é semelhante à sintaxe do loop for na linguagem de programação c. No loop for, existem três expressões em que a primeira expressão é para inicialização, a segunda é para verificação condicional e a terceira é para atualizar o iterador. A execução acima do loop for começará assim, antes de iniciar a primeira iteração expr1, o que significa que a inicialização será feita depois que as operações / comandos entre do e done serão executados iterativamente até que expr2 seja verdadeiro e após cada iteração expr3 atualize o valor do iterador (contador) para que as operações sejam executadas no próximo elemento ou valor na lista ou matriz ou sequência.

Diagrama de fluxo - loop For no script de shell

Vamos considerar um exemplo de loop for e discutir o fluxo usando o diagrama de fluxo.

for filename in *.dat
do
echo cp $fname orig_$fname
done

No diagrama de fluxo acima, estamos explicando o fluxo do loop for, que está iterando sobre uma lista de nomes de arquivos e há quatro etapas no fluxo, como fluxo do processo, valor variável, processo e stdout. No fluxo do processo, ele está explicando quando o loop for é iniciado, o valor do iterador, verificando a condição se satisfatória e, em seguida, executa o processo, caso contrário, finaliza o processo. No valor da variável, iteração por iteração, obteremos um nome de arquivo, como textfile.dat, e durante o processo, ele executa a instrução echo, na qual exibe a instrução copy com um nome de arquivo antigo e o novo nome de arquivo no stdout. Portanto, esse é o fluxo do loop for que itera sobre a lista de nomes de arquivos de entrada.

Resultado:

Como o Loop funciona em scripts de shell?

O script for loop no shell funciona da seguinte maneira sempre que o shell vê a palavra-chave, pois sabe que precisa repetir um conjunto de comandos uma vez para cada item de uma lista. Cada vez que a iteração é executada, um item da lista é atribuído à variável var e a var é processada através da lista de comandos presentes no loop entre fazer e fazer são executados antes de passar para o próximo item na lista ou na próxima iteração. Acessaremos o valor no var usando $ antes da variável para que, quando o script do shell o processe, o valor no var o substitua no lugar dele.

Exemplo:

for filename in *.txt
do
ls filename
done

No programa acima, estamos passando uma lista de arquivos .txt como entrada para o loop for e o nome da variável é um nome de arquivo no qual o arquivo .txt armazenará e processará o nome do arquivo, listando o arquivo .txt no nome do arquivo e, em seguida, o mesmo processo será repetido até todo o processamento dos arquivos .txt.

Resultado:

Exemplos de loop for

Até agora, discutimos como o loop for funciona no shell script e em diferentes sintaxes. Agora, vamos ver alguns exemplos e analisá-los e explicar cada exemplo do que ele faz

Exemplo 1

Deixe-nos uma lista de valores estáticos como entrada para o loop for e como ele será executado será mostrado abaixo:

for a day in Fri Thu Wed Tue Mon
do
echo “Todays day is $day”
done

No exemplo acima, não devemos passar valores de entrada com, pois delimitador, se o passarmos, considerará que delimitador também é um valor como "Fri" e não devemos listar valores usando aspas duplas "se passarmos com aspas duplas, O shell script tratará todos os valores como um único valor.

Um exemplo o / p: Hoje o dia é: Sex Qui Qua Ter Seg (se usarmos aspas duplas)

Resultado:

Exemplo 2

Agora vamos ver outro exemplo em que usamos antes da lista de entrada, como abaixo:

Month = “Jan Feb Mar Apr May Jun”
for mon in $Month
do
echo “Month is $mon”
done

No exemplo acima, fazemos a mesma execução do loop for do exemplo acima, mas em vez da lista de entrada, a leitura será feita usando a palavra-chave “in”. No script de shell, todas as variáveis ​​precisam ser representadas entre aspas duplas, mas há poucas exceções, como se usássemos aspas duplas em $ Month acima para a linha de loop, então ela tratará palavras inteiras como uma única linha. Então, precisamos cuidar disso.

Resultado:

Exemplo 3

Agora, escreveremos para o loop sem lista de entrada na instrução for loop, em vez disso, ele receberá a entrada dos argumentos posicionais para o script e o exemplo como abaixo:

Vamos shell nome do script como sample.sh e seu conteúdo como abaixo:

for num
do
echo “Number is $num”
done
./sample.sh 1 2 3 4 5

No exemplo acima, a entrada para o loop for passada da lista de argumentos fornecidos ao script, de modo que, para cada argumento, processe todos os comandos e exiba a saída até que todos os argumentos tenham sido iterados.

Resultado:

Conclusão - Loop for em scripts de shell

Por fim, trata-se de loop no script de shell. Discutimos o que é loop para scripts de shell, para sintaxe de loop, seu diagrama de fluxo que explica o fluxo de loop de for, como o loop de for funciona no shell e exemplos de loop para scripts de shell. Espero que você tenha um bom entendimento do loop, como usá-lo em scripts de shell e executá-lo depois de ler este artigo.

Artigos recomendados

Este é um guia para o loop For no Script de Shell. Aqui discutimos a introdução Como o loop for funciona em scripts de shell, Diagrama de fluxo e Exemplo do loop for. Você também pode consultar nossos outros artigos sugeridos para saber mais:

  1. Loops em R
  2. Dataframe do SQL Spark
  3. Banco de Dados Multidimensional
  4. Benefícios da visualização de dados

Categoria: