Olá
Desta vez, vou mostrar como fazer um script com condição em Bater, que traduzido é:
Se X coisa que você deseja for realizada, a ação Y é realizada, se não for realizada, então outra ação é realizada.
A explicação não é simples
Agora, pensei por alguns minutos em algum exemplo para usar neste tutorial, o seguinte dilema / problema / situação me ocorreu:
Estamos na rede da nossa empresa e queremos saber se o computador X está conectado à rede. Para isso fazemos um escrita que vai fazer sibilo em relação a esse computador, e se estiver em uma rede (ou seja, se ele retornar o sibilo) nos dirá que SIM, está na rede, caso contrário (ou seja, não está na rede), ele nos dirá que NÃO está na rede.
Feito isso, explicarei agora como fazer um loop com condições
Aqui está o código:
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Não se preocupe, vou explicar isso em detalhes
sibilo é o comando que usaremos e nos dirá se o PC está na rede. Para saber qual PC queremos verificar se ele está ou não na rede, devemos mudar DIREÇÃO IP obviamente pelo endereço IP do PC que queremos verificar.
Como você pode ver, eu coloquei «-c 1«, O que é necessário para nós. Quando fazemos ping em um computador, essa ação não para (o ping) até que nos pressionemos [Ctrl] + [C], então colocando «-c 1»Dizemos para você fazer apenas uma verificação (apenas uma tentativa de ping) e nenhuma outra, isso fará com que pare instantaneamente, ou seja ... verificará se o computador está na rede apenas uma vez.
Se você tiver dúvidas sobre isso, não fique constrangido... é só dizer que terei MUITO prazer em te explicar novamente
Agora vem o ciclo, porque o que acabei de explicar nada mais é do que um comando/ação normal
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Para que você entenda isso, vou explicar um detalhe extremamente importante do Bash
Os mais conhecedores do assunto poderiam me chamar de errado ou algo parecido, mas ei, escrevo isso para novatos ou menos especialistas, desde que eles entendam, então ótimo
Acontece que como em Bater é algo como 0 y 1, ou seja, ou você está vivo ou morto, quando um comando ou ação é executado: bem executado Sem problemas (1), A havia algum problema ou erro (0).
Nós realizamos
Se o que enviamos para fazer (neste caso: ping -c 1 IP-ADDRESS) não deu um erro e foi bem-sucedido, então retornará o valor: 1 . Caso contrário, e se a ação (ou seja, o ping) não for bem-sucedida, ele retornará o valor 0.
E, finalmente, o que o código acima significa é:
Se o valor 0 foi retornado, então
Exibir o texto: «Fora da rede»
Caso contrário (e retorne NÃO 0, mas 1)
Exibir o texto: «Se estiver na rede«
Isso que acabei de explicar a você, vai nos servir no futuro para muitas coisas, porque é muito útil poder dizer que se a ação X deu um erro, faça a ação Y, e caso a ação X não tenha dado um erro, deixe Z ação.
Sei que alguns podem ficar um pouco confusos, então tentei explicar de várias maneiras diferentes, tentando fazer com que todos entendessem de uma forma ou de outra. Caso alguém fique em dúvida, avise-me.
Agora, vamos fazer nosso roteiro
Devemos seguir as etapas deste tutorial: Bash: como fazer um script executável
Então, vamos copiar o seguinte código para esse arquivo (script.sh), e no final vamos dizer «saída"(Sem as aspas):
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Deve ser parecido com isto (lembre-se de que eles devem ter alterado o IP-ADDRESS para o IP que desejam):
Aqui você pode ver o script em execução:
% CODE1%
Como você pode ver, no final ele nos diz «Sim está na rede»
O importante aqui é que eles realmente entendam isso sobre as condições, então deixo outro código para explicar novamente, mas de outro ponto de vista.
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
O que isso significa é simples, deixo a explicação linha por linha:
1ª linha: O que escrevermos, esse será o valor da variável «texto"(Sem as aspas).
2ª linha: Verifique se o conteúdo da variável (o que acabamos de escrever) é 3.
3ª linha: Em caso de ser 3, vai nos mostrar o texto «Corrija"(Sem as aspas).
4ª linha: Caso contrário (isto é, caso não tenhamos escrito 3).
5ª linha: Ele vai nos mostrar o texto «Errado"(Sem as aspas).
6ª linha: Fim da condição.
Como eles foram capazes de perceber, se colocarmos eco e depois entre aspas duplas («) um texto, isso fará com que esse texto seja exibido no terminal. Ou seja, se colocarmos:
echo "esto es una prueba"
Ele nos mostrará o texto no terminal: isso é uma Prov a
Mas voltando a este segundo exemplo, vou mostrar a utilidade (e execução) deste segundo script com algo MUITO simples … o típico «quanto é 1 + 2?«
Deixo-vos o código do script completo:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "¿Cuánto es 1 + 2?"
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
exit
Veja como o script funciona:
% CODE2%
E bem ... nada mais a acrescentar.
Isso é algo elementar, simples sim, mas ainda tentei explicar da melhor forma possível, pois nem todo mundo tem alma de programador, e muitas vezes precisamos fazer scripts como esses (ou similares), em qualquer caso eu espero que este artigo seja útil para alguém
Se você tiver alguma dúvida, dúvida, reclamação ou sugestão, deixe aqui, terei prazer em respondê-la e assim, todos aprenderemos um pouco mais
lembranças