L'ordre de prova es pot utilitzar a la línia de comandaments de Linux per comparar un element amb un altre, però s'utilitza més sovint en els scripts del shell de BASH com a part de les frases condicionals que controlen la lògica i el flux del programa.
Un exemple bàsic
Podeu provar aquests comandaments simplement obrint una finestra de terminal.
prova 1 -eq 2 i & echo "sí" || eco "no"
L'ordre anterior es pot desglossar de la manera següent: En essència, la comanda està comparant 1 a 2 i si coincideixen, s'executa la instrucció echo "sí" que mostra "sí" i si no coincideixen, s'executa la instrucció "no" que mostra "no". Si comparem elements que analitzen com a números, podeu utilitzar els següents operadors de comparació: Exemples prova 1 -eq 2 i & echo "sí" || eco "no"
(mostra "no" a la pantalla perquè 1 no és igual a 2) prova 1 -ge 2 i & echo "sí" || eco "no"
(mostra "no" a la pantalla perquè 1 no és major ni igual a 2) prova 1 -gt 2 i & echo "sí" || eco "no"
(mostra "no" a la pantalla perquè 1 no és superior a 2) prova 1 -le 2 i & echo "sí" || eco "no"
(mostra "sí" a la pantalla perquè 1 és menor o igual que 2) prova 1 -lt 2 i & echo "sí" || eco "no"
(mostra "sí" a la pantalla perquè 1 és menor o igual que 2) prova 1-ne 2 i & echo "sí" || eco "no"
(mostra "sí" a la pantalla perquè 1 no és igual a 2) Si comparem elements que analitzen com a cadenes, podeu utilitzar els següents operadors de comparació: Exemples prova "string1" = "string2" && echo "yes" || eco "no"
(mostra "no" a la pantalla perquè "string1" no és igual a "string2") prova "string1"! = "string2" && echo "yes" || eco "no"
(mostra "sí" a la pantalla perquè "string1" no és igual a "string2") test -n "string1" && echo "yes" || eco "no"
(mostra "sí" a la pantalla perquè "string1" té una longitud de cadena superior a zero) prova -z "string1" && echo "yes" || eco "no"
(mostra "no" a la pantalla perquè "string1" té una longitud de cadena superior a zero) Si comparem fitxers, podeu utilitzar els següents operadors de comparació: Exemples test / path / to / file1 -nt / path / to / file2 i & echo "yes"
(Si el fitxer 1 és més nou que el fitxer2, es mostrarà la paraula "sí") test -e / path / to / file1 && echo "yes"
(si file1 existeix, la paraula "sí" es mostrarà) test-O / path / to / file1 && echo "yes"
(si teniu el fitxer 1, es mostrarà la paraula "sí") Terminologia Fins a aquí, tot ha estat comparant una cosa amb l'altra, però què passa si voleu comparar dues condicions? Per exemple, si un animal té 4 potes i va "moo", probablement és una vaca. Simplement, revisar 4 potes no garanteix que tinguis una vaca, sinó que comprova el so que segurament fa. Per comprovar ambdues condicions alhora, utilitzeu la següent instrucció: prova 4 -eq 4 -a "moo" = "moo" & & echo "és una vaca" || ressò "no és una vaca"
La part clau aquí és la -a que significa i . Hi ha una manera millor i més usada de fer la mateixa prova i això és el següent: prova 4 -eq 4 && test "moo" = "moo" & & echo "és una vaca" || ressò "no és una vaca"
Una altra prova que vulgueu fer és comparar dues instruccions i, si n'hi ha cap, feu una cadena. Per exemple, si voleu comprovar que existeix un fitxer anomenat "file1.txt" o existeix un fitxer anomenat "file1.doc", podeu utilitzar el següent comandament: test -e file1.txt -o -e file1.doc && echo "file1 exists" || echo "file1 does not exist"
La part clau aquí és la -o que significa o . Hi ha una manera millor i més usada de fer la mateixa prova i això és el següent: test -e file1.txt || test -e file1.doc && echo "file1 exists" || echo "file1 does not exist" De fet, no cal utilitzar la prova de paraules per realitzar la comparació. Tot el que heu de fer és incloure la declaració entre claudàtors de la següent manera: -e file1.txt && echo "file1 exists" || echo "file1 does not exist"
El i bàsicament significa el mateix que el test. Ara sabeu que podeu millorar en comparar diverses condicions de la següent manera: 4-eq 4 && "moo" = "moo" && echo "és una vaca" || ressò "no és una vaca"-e file1.txt || -e file1.doc && echo "file1 exists" || echo "file1 does not exist" L'ordre de prova és més útil en les seqüències d'ordres perquè podeu provar el valor d'una variable contra una altra i controlar el flux del programa. A la línia d'ordres estàndard, podeu usar-lo per comprovar si un fitxer existeix o no.
Comparant números
Comparació de text
Comparant fitxers
Comparant diverses condicions
Eliminació de la paraula clau de prova
Resum













