Hello
En aquesta ocasió els mostraré com fer un script amb condició en xoc, La qual cosa traduït és:
Si es compleix X cosa que vostès vulguin, es fa I acció, si no es compleix llavors es fa una altra acció.
Simple l'explicació no
Ara, he pensat durant uns minuts algun exemple per usar en aquest tutorial, se m'ha ocorregut el següent dilema / problema / situació:
Som a la xarxa de la nostra empresa, i desitgem saber si X ordinador està connectat a la xarxa. Per això fem una script que farà fer ping cap a aquest ordinador, i si està en xarxa (o sigui, si torna el fer ping) Ens dirà que SÍ, està en xarxa, en cas contrari (o sigui, que no estigui en xarxa) ens dirà que NO està en xarxa.
Un cop fet això, ara us explicaré com fer un cicle amb condicions
Eh aquí el codi:
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
No us preocupeu, us ho explico al detall
fer ping és el comandament que farem servir, i ens dirà si aquesta PC està en xarxa. Per dir-li què PC volem comprovar si està o no en xarxa, hem de canviar DIRECCIÓ-IP per òbviament, l'adreça IP de PC que desitgem comprovar.
Com veuen, vaig posar «-c 1«, La qual cosa ens cal. Quan fem ping a un ordinador, aquesta acció no s'atura (el ping) fins que nosaltres mateixos pressionem [Ctrl] + [C], De manera que posant «-c 1»Li vam indicar que faci només una verificació (només un intent de ping) i cap altre, això farà que s'aturi a l'instant, o sigui ... comprovarà si l'ordinador està en xarxa només una vegada.
Si tenen dubtes amb això, sense pena… ho diuen i jo amb MOLT gust els hi explico de nou
Ara ve el cicle, ja que el que acabo d'explicar no és res més que una ordre/acció normal
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Perquè entenguin això, us explicaré un detall summament important de Bash
Els més coneixedors del tema em podrien titllar d'equivocat o alguna cosa així, però bé, això ho escric per als novells o menys experts, mentre ells ho entenguin llavors genial
Passa que com a xoc és una mena 0 y 1, És a dir, o estàs viu o estàs mort, quan s'executa una ordre o acció: O es va executar bé sense problemes (1), o hi va haver algun problema o error (0).
Nosaltres vam efectuar X acció o ordre, i això que vam fer pot haver-se efectuat bé o malament, puc haver tingut error o no, i aquí és on hi ha el detall
Si el que enviem a fer (en aquest cas: ping -c 1 DIRECCIÓ-IP) No va donar error i es va efectuar bé, llavors retornarà el valor: 1 . En cas contrari, i que l'acció (o sigui, el ping) no fos reeixit, tornarà valor 0.
I finalment, el que significa el codi anterior és això:
Si es va retornar valor 0 llavors
Posa en pantalla el text: «No està en xarxa»
Altrament (i que es retorni NO 0, sinó 1)
Posa en pantalla el text: «Si està en xarxa«
Això que els acabo d'explicar, ens servirà en un futur per a moltíssimes coses, ja que és realment útil poder dir que si X acció va donar error, feu I acció, i en cas que X acció no hagi donat error, que faci Z acció.
Sé que a alguns podria liaros una mica, pel que he intentat explicar-ho de diverses formes diferents, intentant que tots ho entenguin d'una via o una altra. En cas que algú es quedi amb dubtes, m'ho fa saber.
Ara, fem el nostre script
Hem de seguir els passos d'aquest tutorial: Bash: Com fer un script executable
Després copiem el següent codi en aquest arxiu (guió.sh), I a la fi posem «sortir de»(Sense les cometes):
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Les ha de quedar així (recordin que han d'haver canviat DIRECCIÓ-IP per la IP que desitgen):
Aquí poden veure l'script en execució:
% CODE1%
Com veuen, a la fi ens diu «Sí està en xarxa»
L'important aquí és que en realitat entenguin això de les condicions, de manera que els deixo un altre codi per tornar a explicar-ho, però des d'un altre punt de vista.
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
El que això significa és simple, els deixo línia a línia l'explicació:
1ra línia: El que escrivim, aquest serà el valor de la variable «text»(Sense les cometes).
2a línia: Comprova si el contingut de la variable (el que acabem d'escriure) és 3.
3ra línia: En cas de ser 3, Ens mostrarà el text «Correcte»(Sense les cometes).
4ta línia: Altrament (o sigui, en cas que no haguem escric 3).
5ta línia: Ens mostrarà el text «incorrecte»(Sense les cometes).
6ta línia: Fi de la condició.
Com han pogut adonar-se, si posem trobo i seguidament entre cometes dobles («) Un text, això farà que es mostri a la terminal aquest text. O sigui, si posem:
echo "esto es una prueba"
Ens mostrarà a la terminal el text: això és una prova
Però tornant a aquest segon exemple, us mostraré la utilitat (i execució) d'aquest segon script amb alguna cosa MOLT simple … el típic «quant és 1 + 2?«
Els deixo el codi de l'script complet:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "¿Cuánto es 1 + 2?"
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
exit
Els deixo aquí com funciona l'script:
% CODE2%
I bé ... res més que afegir.
Això és una cosa elemental, simple sí, però tot i així he intentat explicar-ho tan bé com sigui possible, ja que no tots tenen ànima de programador, i moltes vegades necessitem fer scripts com aquests (o similars), de qualsevol manera espero que aquest article li sigui d'utilitat a algú
Qualsevol dubte o pregunta, queixa o suggeriment si us plau, la deixen aquí, amb molt de gust els responc i així, tots aprenem una mica més
Salutacions