Guia de principiants a BASH: Comparar coses

01 de 08

Guia de principiants a BASH: Comparar coses

Tutorial BASH: Comparar cadenes.

A la part anterior del tutorial BASH vam mirar les afirmacions condicionals .

Aquesta guia era molt llarga, però en realitat només mostrava com controlar el flux de la lògica. Aquesta guia mostra les diferents maneres en què es poden comparar les variables.

La imatge que apareix a dalt mostra el primer exemple de la guia d'aquesta setmana:

#! / bin / bash

name1 = "gary"
name2 = "bob"

si ["$ name1" = "$ name2"]
llavors
eco "el nom coincideix amb els noms"
altra cosa
eco "els noms no coincideixen"
fi


En el guió anterior he definit dues variables anomenades name1 i name2 i els ha assignat els valors "gary" i "bob". A mesura que les variables estan contingudes entre cometes, s'anomenen variables de cadena que es tornen més rellevants a mesura que avança el tutorial.

Tot el guió és comparar el valor de $ name1 i $ name2 i si coincideixen amb la sortida de la cadena "the names match" i si no surten la cadena "els noms no coincideixen".

Les cometes al voltant de les variables $ name1 i $ name2 són importants perquè si el valor d'alguna d'elles no s'ha establert, el script seguirà funcionant.

Per exemple, si el nombre $ 1 mai no s'havia definit, ho compararia amb "bob". Sense les cometes, quedaria amb "bob", que falla clarament.

També podeu utilitzar la notació = = per definir que no és igual a la següent:

si ["$ name1"! = "$ name2"]

02 de 08

Guia de principiants a BASH: comparació de cadenes

Tutorial BASH: Comparar cadenes.

A l'exemple anterior, la prova compara les mateixes dues cadenes i fa la pregunta que apareix abans de bob en l'alfabet?

És evident que la resposta és que no.

El script introdueix el menys que l'operador (<). Com que l'operador menys que l'operador també s'utilitza per a la redirecció, heu d'escapar-lo amb una barra inclinada (\) perquè significa menys que per això en l'script anterior he comparat "$ name1" \ <"$ name2".

El contrari de menys que òbviament és més gran que. En lloc d'utilitzar \ .

Per exemple

si ["$ name1" \> "$ name2"]

03 de 08

Guia de principiants a BASH: comparació de cadenes

Tutorial BASH: Comparar cadenes.

Si voleu provar si una variable té un valor, podeu utilitzar la següent prova:

si [-n $ name2]

En l'script anterior he provat si $ value2 s'ha donat un valor i si no apareix el missatge "No hi ha bob, mai no hi ha un bob".

04 de 08

Guia de principiants a BASH: comparació de cadenes

Tutorial BASH: Comparar cadenes.

A la diapositiva anterior, vam comprovar si s'ha establert una variable o no. De vegades, encara que s'hagi establert una variable, és possible que no tingui un valor.

Per exemple:

name1 = ""

Per provar si una variable té un valor o no (és a dir, té una longitud de zero) use -z de la següent manera:

si [-z $ name1]

En el guió anterior, he establert $ name1 en una cadena de longitud zero i després la va comparar amb -z. Si $ name1 és de zero, es mostrarà el missatge "gary ha sortit a la nit".

05 de 08

Guia de principiants a BASH: Comparar números

Tutorial BASH: Comparar números.

Fins ara totes les comparacions han estat per cadenes. Què passa amb comparar els números?

L'esmentat guió mostra un exemple de comparar dos números:

#! / bin / bash

a = 4
b = 5

si [$ a = $ b]
llavors
ressò "4 = 5"
altra cosa
eco "4 no és igual a 5"
fi

Per establir una variable com a número, simplement configureu-lo sense cometes. A continuació, podeu comparar els números amb un signe igual.

Tanmateix, prefereixo utilitzar el següent operador per comparar dos números:

Si [$ a -eq $ b]

06 de 08

Guia de principiants a BASH: Comparar números

Tutorial BASH: Comparar números.

Si voleu comparar si un número és inferior a un altre, podeu utilitzar l'operador menys (<). Igual que amb les cadenes, heu d'escapar de l'operador menys que amb una barra inclinada. (\ <).

Una millor manera de comparar els números és utilitzar la següent notació:

Per exemple:

si [$ a -lt $ b]

si [$ a -le $ b]

si [$ a -ge $ b]

si [$ a -gt $ b]

07 de 08

Guia de principiants a BASH: Comparar números

Tutorial BASH: Comparar números.

Finalment, per a aquesta guia, si voleu provar si els dos números són diferents, podeu utilitzar tant o menys que els operadors conjuntament (<>) o -ne de la següent manera:

si [$ a <> $ b]

si [$ a-ne $ b]

08 de 08

Guia de principiants a BASH - Operadors de comparació - Resum

Si heu perdut les tres primeres parts d'aquesta guia, podeu trobar-les fent clic als següents enllaços:

A la part següent de la guia estaré cobrint aritmètica.