Utilitzant la instrucció if...else a Bash per a l'execució de codi condicional.
Bash (Bourne Again Shell) és un indicador d'ordres de l'intèrpret d'ordres i un llenguatge de script als sistemes operatius GNU/Linux. És el shell predeterminat per a la majoria de distribucions de Linux.
Les declaracions condicionals són vitals en qualsevol llenguatge de programació, tant compilades com amb guió. Permeten que l'usuari executi un fragment de codi basat en una condició predefinida, que és un dels fonaments de la lògica de programació. En aquest article, aprendrem a utilitzar el si una altra cosa
declaració condicional a Bash.
Introducció
El si una altra cosa
La declaració de Bash permet a l'usuari manipular el flux de codi en funció de les condicions. L'usuari pot especificar blocs de codi separats a executar, només un dels quals finalment s'executarà durant el temps d'execució, en funció de la condició corresponent que es compleixi.
Tingueu en compte que es poden especificar més de dues condicions, per a les quals elif
es pot utilitzar la declaració. L'usuari pot donar qualsevol nombre de condicions utilitzant elif
, i finalment una condició predeterminada utilitzant altra cosa
bloc. Vegem més sobre això a la sintaxi i els exemples següents.
Sintaxi general
La sintaxi general per si una altra cosa
declaració a Bash és:
si llavors altra cosa fi
Aquí, si el satisfà, és a dir, si retorna 0 (èxit), s'executa el bloc de codi 1. Si la condició no retorna 0, és a dir, retorna un estat d'error, s'executa el bloc de codi 2. El
si una altra cosa
el bloc acaba amb a fi
declaració.
Per a diversos blocs corresponents a diverses condicions,elif
s'utilitza:
si llavors elif doncs elif doncs ... ... altra cosa fi
Aquí, les condicions es comproven en ordre i s'executa el bloc de codi de la primera condició que retorna l'estat 0 (èxit). Per exemple. si Si cap de les condicions retorna l'estat 0, Tingueu en compte que el Per executar un bloc de codi si una variable té un valor particular: Per comprovar si hi ha diversos valors: Les condicions poden ser qualsevol ordre de Linux. El bloc de codi corresponent s'executarà si l'ordre s'executa correctament. A l'exemple anterior, ja que També podem niar un altre Això és útil quan s'ha de comprovar un conjunt separat de condicions un cop es compleix una condició inicial. Per exemple, el codi següent intenta instal·lar un programari de servidor web: El codi primer comprova si Nginx ja està instal·lat al sistema. Si és així, només mostra un missatge i surt. Si no és així, prova d'instal·lar Nginx. Si per algun motiu, Nginx no es pot instal·lar al sistema des del paquet, prova d'instal·lar Apache2. Si fins i tot Apache2 dóna error durant la instal·lació, surt mostrant un missatge que no s'ha pogut instal·lar cap programari. De manera similar, un bloc imbricat es pot utilitzar dins d'un Similar a qualsevol codi Bash, el L'usuari també pot desar aquest codi en un fitxer de script i executar-lo. El Per donar permisos d'execució per a aquest fitxer, executeu: Finalment, per executar el fitxer, executeu: Similar a qualsevol llenguatge de programació, retorna un estat diferent de zero (error), aleshores
està comprovat. Si
retorna l'estat 0,
s'executa. Després d'això, no es comproven més condicions i l'execució del codi continua amb el codi després de
fi
declaració. al bloc else s'executa. Tingueu en compte que el bloc else és opcional. Si no es compleix cap condició, així com no
altra cosa
s'especifica el bloc, no s'executarà cap bloc de codi condicional i l'execució del codi continuarà amb el codi després de fi
declaració, tal com es mostra al gràfic de flux següent.aleshores
La declaració s'ha d'utilitzar només després si
i elif
declaracions i no requerides després del altra cosa
declaració.Exemples
x=0 si [$x -eq 0] llavors echo "El valor de X és 0" sinó echo "El valor de X no és 0" fi
x=2 if [ $x -eq 0 ] llavors echo "El valor de X és 0" elif [ $x -eq 1 ] llavors echo "El valor de X és 1" elif [ $x -eq 2 ] llavors echo "Valor de X és 2" sinó echo "El valor de X no és 0" fi
si npm -v, feu ressò de "NPM present al sistema", sinó sudo apt install npm fi
npm
no s'ha instal·lat al sistema, l'ordre npm -v
va retornar un estat diferent de zero. Per tant, l'execució del codi va entrar a altra cosa
bloc, on instal·lem npm utilitzant apt
gestor de paquets. Com podem veure, em va demanar que introduís la contrasenya i va començar la instal·lació de npm.si una altra cosa
bloc dins d'un si
, altra cosa
o elif
bloc:x=0 y=1 si [ $x -eq 0 ] llavors echo "X és 0" si [ $y -eq 1 ] llavors echo "Y és 1" sinó echo "Y no és 1" fi altrament echo "X és no 0" fi
si nginx -v, feu ressò "NGINX ja està instal·lat". en cas contrari, si sudo apt install nginx, feu ressò de "La instal·lació de NGINX ha estat correcta". elif sudo apt install apache2 i després echo "La instal·lació d'APACHE2 és correcta". else echo "No es pot instal·lar cap programari web". fi
elif
bloc també.Executant
si una altra cosa
: Scripts i línia d'ordressi una altra cosa
La instrucció es pot utilitzar a l'intèrpret d'ordres Bash directament o des d'un fitxer de script d'intèrpret d'ordres executable. Un cop l'intèrpret de Bash troba un si
, altra cosa
o elif
declaració, continua l'intèrpret d'ordres per permetre que l'usuari introdueixi el bloc de codi.#!/bin/bash
al començament especifica l'intèrpret que s'utilitzarà quan s'executa el fitxer. Encara que Bash és l'intèrpret d'ordres més utilitzat actualment, alguns usuaris prefereixen intèrprets d'ordre com zsh, que s'han d'especificar en lloc de bash a l'inici d'aquest fitxer.chmod +x prova.sh
./prova.sh
Conclusió
si una altra cosa
La declaració és una característica fonamental de Bash. Aprendre el seu ús és molt important tant per escriure scripts bàsics com avançats.