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>

Saindo de um loop

O bash fornece dois comandos embutidos que podem ser usados ​​para controlar o fluxo do programa dentro dos loops. O comando break termina imediatamente um loop e o controle do programa recomeça com a próxima instrução após o loop. O comando continue faz com que o restante do loop seja pulado e o controle do programa seja retomado com a próxima iteração do loop. Aqui, vemos uma versão do programa do menu while incorporando break e continue:


#! / Bin / bash


# while-menu2: um programa de informações do sistema acionado por menu DELAY = 3 # Número de segundos para exibir os resultados

enquanto verdadeiro; 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

continuar

fi

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

dormir $ DELAY

continuar

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

#! / Bin / bash


# while-menu2: um programa de informações do sistema acionado por menu DELAY = 3 # Número de segundos para exibir os resultados

enquanto verdadeiro; 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

continuar

fi

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

dormir $ DELAY

continuar

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

continuar

fi

if [[$ REPLY == 0]]; então quebrar

fi

outro

echo "Entrada inválida." dormir $ DELAY

fi feito

echo "Programa encerrado."

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

fi

dormir $ DELAY

continuar

fi

if [[$ REPLY == 0]]; então quebrar

fi

outro

echo "Entrada inválida." dormir $ DELAY

fi feito

echo "Programa encerrado."


Nesta versão do script, configuramos um loop infinito (um que nunca termina por conta própria) usando o verdadeiro comando para fornecer um status de saída para enquanto. Desde verdadeiro sempre sairá com um status de saída zero, o loop nunca terminará. Esta é uma técnica de script surpreendentemente comum. Uma vez que o loop nunca terminará sozinho, cabe ao programador fornecer alguma maneira de interromper o loop quando for a hora certa. Neste script, o quebrar comando é usado para sair do loop quando a seleção “0” é escolhida. o Prosseguir comando foi incluído no final das outras opções de script para permitir uma execução mais eficiente. Usando continuar, o script irá ignorar o código que não é necessário quando uma seleção for identificada. Por exemplo, se a seleção “1” for escolhida e identificada, não há razão para testar as outras seleções.


 

Top OS Cloud Computing na OnWorks: