Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

enquanto

O bash pode expressar uma ideia semelhante. Digamos que quiséssemos exibir cinco números em sequência


ordem inicial de um a cinco. uma bater o script pode ser construído da seguinte forma:


#! / Bin / bash


# while-count: exibe uma série de números count = 1

enquanto [[$ count -le 5]]; faça echo $ count count = $ ((count + 1))

feito

echo "Concluído".

#! / Bin / bash


# while-count: exibe uma série de números count = 1

enquanto [[$ count -le 5]]; faça echo $ count count = $ ((count + 1))

feito

echo "Concluído".


Quando executado, este script exibe o seguinte:



[me @ linuxbox ~] $ enquanto conta

1

2

3

4

5

Acabado.

[me @ linuxbox ~] $ enquanto conta

1

2

3

4

5

Acabado.


A sintaxe do enquanto o comando é:

enquanto comandos; Faz comandos; feito

Como if, enquanto avalia o status de saída de uma lista de comandos. Desde que o status de saída seja zero, ele executa os comandos dentro do loop. No script acima, a variável contar é criado e atribuído a um valor inicial de 1. O enquanto comando avalia o status de saída do [[]] comando composto. Contanto que o [[]] comando retorna um status de saída de zero, os comandos dentro do loop são executados. No final de cada ciclo, o [[]] comando é repetido. Após cinco iterações do loop, o valor de contar aumentou para 6, o [[]] o comando não retorna mais um status de saída de zero e o loop termina. O programa continua com a próxima instrução após o loop.

Podemos usar um loop while para melhorar o menu de leitura programa do capítulo anterior:


#! / Bin / bash


# while-menu: um programa de informações do sistema acionado por menu

#! / Bin / bash


# while-menu: um programa de informações do sistema acionado por menu


ATRASO = 3 # Número de segundos para exibir os resultados


enquanto [[$ REPLY! = 0]]; Faz

remover filtragem

gato << - _EOF_

Por favor selecione:


1. Exibir informações do sistema

2. Exibir espaço em disco

3. Exibir a utilização do espaço doméstico

0. Saia


_EOF_

leia -p "Digite a seleção [0-3]>"


if [[$ REPLY = ~ ^ [0-3] $]]; então se [[$ REPLY == 1]]; então

echo "Hostname: $ HOSTNAME" uptime

dormir $ DELAY

fi

if [[$ REPLY == 2]]; então df -h

dormir $ DELAY

fi

if [[$ REPLY == 3]]; então

if [[$ (id -u) -eq 0]]; então

echo "Utilização do espaço doméstico (todos os usuários)" du -sh / home / *

outro

echo "Utilização do espaço doméstico ($ USER)" du -sh $ HOME

fi

dormir $ DELAY

fi

outro

echo "Entrada inválida."

dormir $ DELAY

fi

feito

echo "Programa encerrado."

ATRASO = 3 # Número de segundos para exibir os resultados


enquanto [[$ REPLY! = 0]]; Faz

remover filtragem

gato << - _EOF_

Por favor selecione:


1. Exibir informações do sistema

2. Exibir espaço em disco

3. Exibir a utilização do espaço doméstico

0. Saia


_EOF_

leia -p "Digite a seleção [0-3]>"


if [[$ REPLY = ~ ^ [0-3] $]]; então se [[$ REPLY == 1]]; então

echo "Hostname: $ HOSTNAME" uptime

dormir $ DELAY

fi

if [[$ REPLY == 2]]; então df -h

dormir $ DELAY

fi

if [[$ REPLY == 3]]; então

if [[$ (id -u) -eq 0]]; então

echo "Utilização do espaço doméstico (todos os usuários)" du -sh / home / *

outro

echo "Utilização do espaço doméstico ($ USER)" du -sh $ HOME

fi

dormir $ DELAY

fi

outro

echo "Entrada inválida."

dormir $ DELAY

fi

feito

echo "Programa encerrado."


Ao encerrar o menu em um loop while, podemos fazer com que o programa repita a exibição do menu após cada seleção. O loop continua enquanto RESPOSTA não é igual a “0” e o menu é exibido novamente, dando ao usuário a oportunidade de fazer outra seleção. Ao final de cada ação, um dormir O comando é executado de forma que o programa pare por alguns segundos para permitir que os resultados da seleção sejam vistos antes que a tela seja apagada e o menu seja exibido novamente. Uma vez RESPOSTA é igual a "0", indicando a seleção de "sair",


o loop termina e a execução continua com a linha seguinte feito.


Top OS Cloud Computing na OnWorks: