Buscar

Utilizando estruturas de controle de fluxo, é possível criar scripts para automatizar tarefas com algoritmos menores e mais flexíveis. É possível, ...

Utilizando estruturas de controle de fluxo, é possível criar scripts para automatizar tarefas com algoritmos menores e mais flexíveis. É possível, por exemplo, testar se um endereço de IP na rede está acessível ou não utilizando o comando ping. Para isso, os parâmetros mais básicos do comando envolvem a quantidade de tentativas (-c) e o endereço que se deseja avaliar. Por exemplo: para tentar se comunicar com o endereço 10.1.1.1 até cinco vezes no máximo, utilizamos o comando ping -c 5 10.1.1.1, no qual o estado de saída é 0, quando alguma resposta é obtida. Agora imagine que, na sua empresa, em máquinas que utilizam o Linux, você precisa monitorar constantemente do endereço de rede 192.168.1.1 até o 192.168.1.10 para verificar se algum desses endereços está inativo. Você pode utilizar um laço de repetição for em linguagem Shell Script para criar uma rotina simples de verificação que exiba uma mensagem para cada teste: "O endereço X está ativo" ou "O endereço X está inativo". Qual o código na linguagem Shell Scriptutilizando a variável $? para recuperar o estado de saída do último comando? Explique.

💡 1 Resposta

User badge image

Ed Verified user icon

Para recuperar o estado de saída do último comando em Shell Script, você pode utilizar a variável especial "$?". Essa variável armazena o código de retorno do comando executado anteriormente. No caso específico do exemplo dado, em que utilizamos o comando ping para verificar a disponibilidade de um endereço IP, podemos utilizar a variável "$?" para verificar se o estado de saída foi igual a 0, indicando que alguma resposta foi obtida. Segue um exemplo de código em Shell Script que utiliza a variável "$?" para recuperar o estado de saída do comando ping: ```shell #!/bin/bash for ((i=1; i<=10; i++)) do endereco="192.168.1.$i" ping -c 1 $endereco > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "O endereço $endereco está ativo" else echo "O endereço $endereco está inativo" fi done ``` Nesse exemplo, utilizamos um laço de repetição for para percorrer os endereços de 192.168.1.1 até 192.168.1.10. O comando ping é executado para cada endereço, e o resultado é redirecionado para /dev/null para evitar a exibição na saída padrão. Em seguida, verificamos o valor da variável "$?" utilizando a estrutura condicional if. Se o valor for igual a 0, exibimos a mensagem "O endereço X está ativo", caso contrário, exibimos a mensagem "O endereço X está inativo". Dessa forma, utilizando a variável "$?" é possível recuperar o estado de saída do último comando executado e tomar decisões com base nesse valor.

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais